本文正在参加「Python主题月」,详情查看 活动链接
1.Selenium简介
Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。
2.支持多种操作系统
如Windows、Linux、IOS、Android等。
3.安装Selenium
pip install Selenium
4.安装浏览器驱动
Selenium3.x调用浏览器必须有一个webdriver驱动文件
5.Selenium提供了8种元素定位方式:
id name class name tag name link text partial link text xpath css selector
其实并不一定需要全背下来,只是用到的时候会查就行了。并且这些查找方法之间可以相互转换,哪样方便就用哪样就行了。
find_element_by_id find_elements_by_id 通过元素id定位 find_element_by_name find_elements_by_name 通过元素name定位 find_element_by_xpath find_elements_by_xpath 通过xpath表达式定位 find_element_by_link_text find_elements_by_link_tex 通过完整超链接定位 find_element_by_partial_link_text find_elements_by_partial_link_text 通过部分链接定位 find_element_by_tag_name find_elements_by_tag_name 通过标签定位 find_element_by_class_name find_elements_by_class_name 通过类名进行定位 find_elements_by_css_selector find_elements_by_css_selector 通过css选择器进行
6.控制浏览器操作的一些方法
set_window_size() 设置浏览器的大小 back() 控制浏览器后退 forward() 控制浏览器前进 refresh() 刷新当前页面 clear() 清除文本 send_keys (value) 模拟按键输入 click() 单击元素 submit() 用于提交表单 get_attribute(name) 获取元素属性值 is_displayed() 设置该元素是否用户可见 size 返回元素的尺寸 text 获取元素的文本
7.鼠标事件
web自动化测试肯定少不了对鼠标的模拟
ActionChains(driver) 构造ActionChains对象
context_click() 执行鼠标悬停操作
move_to_element(above) 右击
double_click() 双击
drag_and_drop() 拖动
move_to_element(above) 执行鼠标悬停操作
context_click() 用于模拟鼠标右键操作, 在调用时需要指定元素定位
perform() 执行所有 ActionChains 中存储的行为,可以理解成是对整个操作的提交动作
8.键盘事件
send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
send_keys(Keys.SPACE) 空格键(Space)
send_keys(Keys.TAB) 制表键(Tab)
send_keys(Keys.ESCAPE) 回退键(Esc)
send_keys(Keys.ENTER) 回车键(Enter)
9.多表单切换
在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位。这时就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单的内嵌页面中。
switch_to.frame() 将当前定位的主体切换为frame/iframe表单的内嵌页面中 switch_to.default_content() 跳回最外层的页面
10.多窗口切换
current_window_handle 获得当前窗口句柄 window_handles 返回所有窗口的句柄到当前会话 switch_to.window() 用于切换到相应的窗口,与上一节的switch_to.frame()类似,前者用于不同窗口的切换,后者用于不同表单之间的切换。
想要更深入了解,得到更多源码案例的话。请移步到公众号:诗一样的代码。