Selenium+Python 鼠标事件

来源:互联网 发布:苹果电脑mac使用技巧 编辑:程序博客网 时间:2024/06/05 20:30

首先,谢谢虫师博客的分享http://www.cnblogs.com/fnng/p/3183777.html
在此博客基础上,自学,在此记录遇到的每个小问题以及细节如何实现。
今天补上昨天学习的鼠标事件。
对于鼠标事件,借鉴虫师老师介绍的ActinChains模块加载。
from selenium.webdriver.common.action_chains import ActionChains

测试案例:
1) 实现百度云的登录
2) 鼠标双击“网盘”(百度云登录成功后,有网盘的table显示)
3) 鼠标右键“通知”(百度云登录成功后,有通知的table显示)
本文就实现的百度云登录成功后,使用鼠标双击和鼠标右键对测试对象的操作如何实现,进行详细说明。
1.如何获得find_elment_by_xpath()中的xpath?
选择需要测试的对象,右键选择‘审查元素’,然后会出现如下显示的灰色部分

  <a class="app" hidefocus="hideFocus" href="http://pan.baidu.com" target="_self"><em class="app-icon i-disk"></em>网盘</a>

接着,选中该部分的html代码,然后鼠标右键选择“copy xPath”选项,这样就完成了对xPath的选择。这样就产生了xPath的内容(//*[@id=’aside’]/ul[2]/li[1]/a) 。这样就做就免去了对xPath实际去取的麻烦操作,同时避免了获取xPath的错误。
另外,注意在find_element_by_xpath(“//*[@id=’aside’]/ul[2]/li[1]/a”) 括号里面的单引号与双引号的使用,不能同时使用单引号或者双引号,这样会报错。
2.鼠标双击“网盘”,定义鼠标双击的变量为double,其实现如下:

double=browser.find_elment_by_xpath("//*[@id='aside']/ul[2]/li[1]/a")ActionChains(browser).double_click(double).perfom()

3.鼠标右键“通知”,定义鼠标右键的变量为right,其实现如下:

right=browser.find_element_by_xpath("//*[@id='aside']/ul[1]/li[3]/a")ActionChains(browser).context_click(right).perfom()

4.脚本附上
该脚本的测试功能,主要实现:
1)打开百度云,窗口最大化
2)输入百度云的用户名和密码,自动登录百度云网站
3)打印百度云网站的title
4)打印当前百度云网站的网址
5)鼠标右键选择’通知’
6)鼠标双击选择’网盘’

from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.action_chains import ActionChainsimport osimport timebrowser=webdriver.Chrome()url='http://yun.baidu.com/'browser.get(url)time.sleep(3)browser.maximize_window()browser.find_element_by_name("userName").clear()browser.find_element_by_name("userName").send_keys("alu****")browser.find_element_by_name("userName").send_keys(Keys.TAB)time.sleep(2)browser.find_element_by_name("password").send_keys("******")browser.find_element_by_name("password").send_keys(Keys.ENTER)title=browser.titleprint ("title is %s"%title)#browser.find_element_by_class_name("pass-button pass-button-submit").submit()time.sleep(3)if title=='百度云——云上的日子 你我共享':    print ("title is OK")else:    print ("title is NOK")now_url=browser.current_urlprint ("current url is %s"%now_url)if now_url==url:    print ("login is successfully")else:    print ("login is failed")right=browser.find_element_by_xpath("//*[@id='aside']/ul[1]/li[3]/a")#print (right_click)ActionChains(browser).context_click(right_click).perform()time.sleep(4)double=browser.find_element_by_xpath("//*[@id='aside']/ul[2]/li[1]/a").click()print (double)ActionChains(browser).double_click(double).perform()time.sleep(4)browser.close()
0 0
原创粉丝点击