一、WebDriver中常见的几种方法:
1、clear(): 清除文本
2、send_keys(value): 模拟按键输入
3、click(): 单击元素
4、submit(): 回车,用于提交表单
5、back(): 后退
6、forward(): 前进
7、size: 返回元素的尺寸
8、text: 获取元素的文本
9、get_attribute(name): 获得属性值
10、is_displayed(): 设置该元素是否用户可见
例:126邮箱登录
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.126.com")
driver.find_element_by_id("idInput").clear() # 清除登陆框的默认账号
driver.find_element_by_id("idInput").send_keys("username")
driver.find_element_by_id("pwdInput").clear()
driver.find_element_by_id("pwdInput").send_keys("password")
driver.find_element_by_id("loginBtn").click()
driver.quit()
二、鼠标事件:在WebDriver中,这些鼠标的方法封装在ActionChains类中,ActionChains 类提供了鼠标操作的常用方法:
1、perform(): 执行所有ActionChains 中存储的行为
2、context_click(): 右击
3、double_lick(): 双击
4、drag_and_drop(): 拖动
5、move_to_element(): 鼠标悬停
三、显式等待:
显示等待使WebDriver 等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException)。
四、隐式等待:
隐式等待是通过一定的时长等待页面上某元素加载完成。如果超出了设置的时常元素还没有被加载,则抛出NoSuchElementException 异常。
from time import ctime #导入模块
implicitly_wait() 默认参数的单位为秒。
五、定位方法:
定位单个元素,WebDriver 提供了元素定位的8种方法:
find_elements_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_elemenet_by_css_selector()
定位一组元素的方法和定位单个元素的方法类似,唯一的区别在于element后面加了一个s 表示复数,而定位一组元素一般用于:一批量操作元素,二是先获取一组元素,然后再过滤需要的元素。
对于选择一组元素时也有一个有趣的方法,len() 方法可以计算元素的个数,通过print() 打印结果,而pop() 方法可以用来获取列表中的一个元素并返回。
pop() 或 pop(-1): 默认获取一组元素中的最后一个
pop(0): 默认获取一组元素中的第一个
pop(1): 默认获取一组元素中的第二个
......
六、多窗口切换:在页面操作的过程中有时候会点击某个链接时会弹出新的窗口,这时就需要切换到新的窗口进行操作,WebDriver提供了switch_to.window() 方法,就可以实现不同窗口之间的切换。
current_window_handle: 获得当前窗口的句柄
window_handles: 返回所有窗口的句柄到当前会话
switch_to.window(): 切换不同的窗口,而switch_to.frame() 切换表单