博客
关于我
Selenium-WebDriverApi介绍
阅读量:83 次
发布时间:2019-02-26

本文共 3888 字,大约阅读时间需要 12 分钟。

浏览器操作:

#刷新driver.refresh()from selenium import webdriverdriver=webdriver.Chrome()driver.get('http://www.baidu.com')import timetime.sleep(2)driver.refresh()#前进driver.forward()#后退driver.back

获取标签元素

from selenium import webdriverdriver=webdriver.Chrome()driver.get('http://www.imdsx.cn')#通过ID定位目标元素driver.find_element_by_id('i1').send_keys(1111)#向页面发送文本‘11111’# 通过className定位目标元素driver.find_element_by_class_name('c1').send_keys(1111)#通过name属性定位目标元素driver.find_element_by_name('n1').send_keys(1111)#通过Xpath属性定位目标元素driver.find_element_by_xpath('//input[@placeholder="请通过XPATH定位元素"]').send_keys(1111)#通过css Selector定位目标元素driver.find_element_by_css_selector('[maxlength="20"]').send_keys(2222)# 通过标签名称定位(注:在一个页面中,标签一定会重复,所以不用这个来进行定位)driver.find_element_by_tag_name('input').send_keys('tag name')#通过标签中的文本查找元素driver.find_element_by_link_text('登录').click()#通过标签中文本的模糊匹配查找driver.find_element_by_partial_link_text('录').click()

获取标签元素常用的一共有8种定位方式,而Selenium实际提供了18种定位方式,还有8种是上面的复数形式,实际种一般用不到,还有2种是这上面16种的底层封装。参数化的一种调用方式。

复数:

e=driver.find_elements_by_class_name('classname')[0]e.send_keys(1111)print(e)print(type(e))接受两个参数 形参1 以什么形式定位  形参2 定位value是什么driver.find_element_by_id('i1')driver.find_element('id','i1').send_keys(1111)driver.find_elements('id','i1')[0].send_keys(2222)

一般都直接用driver.find_element_by_css_selector(),因为底层只要符合w3c的都转化为css_selector

窗口操作:

#获取当前浏览器的大小driver.get_window_size()#通过宽和高对size进行设置driver.set_window_size('100','200')# 获取当前窗口针对于Windows的位置的坐标x,ydriver.get_window_position() # 设置当前窗口针对Windows的位置,x,ydriver.set_window_position(20,20) # 最大化当前窗口,不需要传参driver.maximize_window() # 返回当前操作的浏览器句柄driver.current_window_handle # 返回所有打开server的浏览器句柄driver.window_handles

截取当前页面:

from selenium import webdriverdriver=webdriver.Chrome()driver.get("http://www.baidu.com")driver.get_screenshot_as_file('d.png')执行JavaScript语句
# 执行JavaScript语句driver.execute_script('window.scrollTo(0,0);')#执行js的api,通过js来操作滚动条,滚动到最上面

关闭与退出:

#当开启多个页面时,关闭当前页面driver.close()#退出并关闭所有页面驱动driver.quit()
from selenium import webdriverdriver=webdriver.Chrome()driver.get("http://ui.imdsx.cn/uitester/")driver.maximize_window()#将窗口放大driver.execute_script('window.scrollTo(0,0);')#执行js的apidriver.find_element_by_css_selector('[href="/new-index/"]').click()handles=driver.window_handles#返回所有打开server的浏览器句柄print(handles)#返回listdriver.switch_to.window(handles[1])driver.find_element_by_css_selector('#newtag').send_keys(1111)#找到新页面上的元素driver.close()#关闭当前tab页
from selenium import webdriverdriver=webdriver.Chrome()driver.get("http://ui.imdsx.cn/uitester/")driver.maximize_window()#将窗口放大driver.execute_script('window.scrollTo(0,0);')#执行js的apidriver.find_element_by_css_selector('[href="/new-index/"]').click()handles=driver.window_handlesprint(handles)driver.switch_to.window(handles[1])driver.find_element_by_css_selector('#newtag').send_keys(1111)driver.quit() #关闭所有页面,结束服务

其他

# 返回页面源码driver.page_source # 返回tag标题driver.title # 返回当前Urldriver.current_url # 获取浏览器名称 如:chromedriver.name

ElementApi接口

#根据标签属性名称,获取属性valueelement.get_attribute('style')# 向输入框输入字符串 如果input的type为file类型 可以输入文件绝对路径上传文件element.send_keys()# 清除文本内容element.clear()# 鼠标左键点击操作element.click() # 通过属性名称获取属性element.get_property('id') # 返回元素是否可见 True or Falseelement.is_displayed() # 返回元素是否被选中 True or Falseelement.is_selected() # 返回标签元素的名字element.tag_name # 获取当前标签的宽和高element.size # 获取元素的文本内容element.text # 模仿回车按钮 提交数据element.submit() # 获取当前元素的坐标element.location # 截取图片element.screenshot()
from selenium import webdriverdriver=webdriver.Chrome()driver.get("http://ui.imdsx.cn/uitester/")driver.maximize_window()#将窗口放大driver.execute_script('window.scrollTo(0,0);')#执行js的apie=driver.find_element_by_css_selector('#i1')e.send_keys(1111)import timetime.sleep(1)e.clear() #清除文本框内内容

如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的, 都可以加入我们1079636098,群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

转载地址:http://rhpk.baihongyu.com/

你可能感兴趣的文章
mysql 中的all,5分钟了解MySQL5.7中union all用法的黑科技
查看>>
MySQL 中的外键检查设置:SET FOREIGN_KEY_CHECKS = 1
查看>>
Mysql 中的日期时间字符串查询
查看>>
mysql 中索引的问题
查看>>
MySQL 中锁的面试题总结
查看>>
MySQL 中随机抽样:order by rand limit 的替代方案
查看>>
MySQL 为什么需要两阶段提交?
查看>>
mysql 为某个字段的值加前缀、去掉前缀
查看>>
mysql 主从
查看>>
mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
查看>>
mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
查看>>
mysql 主从关系切换
查看>>
MYSQL 主从同步文档的大坑
查看>>
mysql 主键重复则覆盖_数据库主键不能重复
查看>>
Mysql 事务知识点与优化建议
查看>>
Mysql 优化 or
查看>>
mysql 优化器 key_mysql – 选择*和查询优化器
查看>>
MySQL 优化:Explain 执行计划详解
查看>>
Mysql 会导致锁表的语法
查看>>
mysql 使用sql文件恢复数据库
查看>>