1.selenium鼠标事件web
from selenium import webdriver
b=webdriver.Firefox()测试
url='http://www.baidu.com'
b.get(url)ui
ele=b.find_element_by_id('test')url
from selenium.webdriver.common.action_chains import ActionChainsspa
ActionChains(b) 用于生成模拟用户行为orm
perform() 执行存储行为blog
将鼠标放到元素上事件
ActionChains(b).move_to_element(ele).perform()图片
2.键盘事件ci
from selenium.webdriver.common.keys import Keys
模拟键盘正常输入字符
ele.send_keys("asdfj") 使用简单的模拟元素的输入不须要导入上面的包。当输入图片中复杂的组合
须要导包。
有时候ele.send_keys()第一次发送字符会失败,不知道什么缘由。通常先发送一个空
ele.send_keys( ‘ ’ )
send_keys()是元素属性的方法
Key.ENTER 等是Keys包中的属性
3.对话框处理及登陆测试
a.对话框窗口处理:(是那种网页中有个聊天的窗口那种)
经过查找元素找到对话框的关闭元素
而后元素点击关闭 就关闭了
b.登陆窗口
查找登陆窗口的元素
输入帐户和密码
查找登陆元素,点击登陆
4.多窗口切换
先访问百度,而后搜索到另外的页面进入
可是此时打开的是两个窗口,百度窗口和搜索的窗口
此时能够查看窗口全部的句柄 d.window_handles 返回的是列表
d.current_window_handle 查看全部句柄
当有多个窗口在多个窗口中切换
d.switch_to_window(d.window_handles[1]) 切换到特定的窗口
d.current_url 查看窗口当前的URL
d.close() 切换到特定窗口后 能够进行窗口关闭
d.quit() 退出,全部窗口都关闭了
5.脚本中加入等待的方法
a.Python自己time模块的sleep方法
b.selenium 模块中的等待方法
implicitly_wait() 针对全部的控件查找 找不到超时
WebDriverWait 针对某一个操做
d.implicitly_wait(5) 单位是秒 该语句后面的查找元素都知足此规则
当查找的元素不存在时,查询时间超过5秒才会报错 找到时会立马返回
from selenium.webdriver.support.ui import WebDriverWait
def get_ele_times(driver,times,func)
return WebDriverWait(driver,times).until(func) 这个方法的返回值就是func的返回值
此时将以前查找元素的语句ele=b.find_element_by_id('id1')更改成
ele=get_ele_times(b,10, lambda b: b.find_element_by_id('id1')) 超时的时间是10秒 只针对该查询
6.alert对话框处理
alert弹出框鼠标右击没法检查元素,此时经过其余方法来操做
alter = b.switch_to_alert()
alter.accept()
alter.text 查看弹出框的文本
alter.dismiss()