1.浏览器驱动对象
(1)库的导入
from selenium import webdriver
(2)创建浏览器对象
driver = webdriver.Chrome()
使用dir(driver)查看方法
(3)浏览器尺寸相关操作
maximize_window() #最大化
get_window_size() #获取浏览器尺寸
set_window_size() #设置浏览器尺寸
(4)浏览器位置相关操作
get_window_position() #获取浏览器位置
set_window_position(x,y) #设置浏览器位置
注:显示器以左上角为(0,0),所有的位置操作都是相对于显示器左上角展开的位移操作,单位是像素。
(5)浏览器的关闭操作
close() #关闭当前标签/窗口
quit() #关闭所有标签/窗口
2.元素定位
3.元素的操作
对元素的相关操作,一般要先获取到元素,再调用相关方法
element = driver.find_element_by_xxx(value)
(1)点击和输入
element.click() #点击操作
element.clear() #清空输入框
element.send_keys(data)
#输入数据//清空/输入操作(只能操作可以输入文本的元素)
(2)提交操作
element.submit()
(3)获取元素信息
element.text #获取文本内容(既开闭标签之间的内容)
element.get_attribute(value)
#获取属性值(获取element元素的value属性的值)
element.size #获取元素尺寸(了解)
element.is_dispalyed() #获取元素是否可见(了解)
4.多标签/多窗口之间的切换
有的时候点击一个链接,新页面并非由当前页面跳转过去,而是新开一个页面打开,这种情况下,计算机需要识别多标签或窗口的情况。
(1)获取所有窗口的句柄
handles = driver.window_handlers
调用该方法会得到一个列表,在selenium运行过程中的每一个窗口都有一个对应的值存放在里面。
(2)通过窗口的句柄进入的窗口
driver.switch_to_window(handles[n])
5.多表单/多框架切换
在网页中,表单嵌套是很常见的情况,尤其是在登录的场景
(1)什么是多表单?
实际上就是使用iframe/frame,引用了其他页面的链接,真正的页面数据并没有出现在当前源码中,但是在浏览器中我们看到,简单理解可以使页面中开了一个窗口显示另一个页面
(2)处理方法
直接使用id值切换进表单
driver.switch_to.frame(value)
#driver.switch_to_frame(value)
定位到表单元素,再切换进入
el = driver.find_element_by_xxx(value)
driver.switch_to.frame(el)
#driver.switch_to_frame(el)
6.多表单切换
处理方法
driver.switch_to.default_content()
#跳回最外层的页面
driver.switch_to.parent_frame()
#跳回上层的页面
7.鼠标和键盘操作
手动测试时键盘的操作在selenium页有实现,关于鼠标的操作由ActionChains()类来提供,关于键盘的操作由Key()类来提供
(1)鼠标操作
#导入动作链类,动作链可以储存鼠标的动作,并一起执行
from selenium.webdriver import ActionChains
ActionChains(driver)
#执行ActionChains中储存的所有动作
perform()
鼠标右击
el = driver.find_element_by_xxx(value)
context_click(el)
#对el执行右击
WebDriver通过下表的功能来操纵浏览器
WebDirver通过一些方法来实现与浏览器窗口、网页和页面元素的交互