Python使用selenium(二)

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()

相关文章
相关标签/搜索