20170922学习笔记Selenium 2第四章WebDriver API 4.1定位元素
来源:互联网 发布:淘宝网首页官网电脑版 编辑:程序博客网 时间:2024/06/02 05:31
4.1从定位元素开始
八种元素定位的方法,及对比
1. id ---5.name (id唯一,name不唯一)
2. class name ---6.tag name (通过tag识别某个元素的概率很低)
3.link text ---7.partial link text
4.xpath ---8.css selector (尽量用css,因为css的效率比xpath要高)
find_element_by_id()
find_element_by_classname()
find_element_by_link_text()
find_element_by_xpath()
4.1.1id定位
id的属性,在HTML文档中必须是唯一的。
#通过查看百度的前端代码,查看搜索输入框的id为kw。
find_element_by_id("kw")
4.1.2name定位
name的属性值,在HTML中,可以不唯一。
find_element_by_name("wd")
4.1.3class定位
通过class属性来定位。
find_element_by_class_name("s_ipt")
4.1.4tag定位
因为html的本质是通过tag来定义实现不同功能。存在大量的tag。所以用tag来识别某一元素概率较低。
find_element_by_tag_name("input")
4.1.5link定位
link定位,专门用来定位文本链接。通过元素之间的文本信息来定位标签。
find_element_by_link_text("新闻")
4.1.6partial link定位
partial link 是对link的一种补充。对于较长的文本链接,会截取其中一部分来定位。只要这一部分可以唯一标识这个链接。
driver.find_element_by_partial_link_text("一个很长的")
driver.find_element_by_partial_link_text("文本链接")
xpath和css比前面几种更加灵活
4.1.7xpath定位
绝对路径定位,需要一层一层的往下找。如果同级有多个相同标签,需要标注从上往下的第几个。例如下方百度的搜索文本输入框的定位:
driver.find_element_by_xpath("/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input").send_keys("Selenium3")
虽然准确,但是效率很低。
使用元素属性定位
Xpath也可以利用元素属性来定位,例如百度输入框
#driver.find_element_by_xpath("//input[@id='kw']").send_keys("Selenium3") #使用xpath 元素属性定位
层级和属性结合
driver.find_element_by_xpath("//form[@id='form']/span/input").send_keys("尹巧灵")
使用逻辑运算符
通过and来附加多个条件。
driver.find_element_by_xpath("//input[@id='kw'and @class='s_ipt']").send_keys("loveyou")#使用逻辑运算符
学会定位xpath
使用火狐浏览器,打开测试网页,点击之前安装的firepath,里面有xpath。可以直接复制定位路径。
4.1.8css定位
css使用选择器来为页面元素绑定属性。这些选择器也可以被Selenium使用。
1)通过class属性定位
点号. 表示通过class
find.element_by_css_selector(”.s_ipt")
2)通过id属性定位:
#井号表示id属性
find_element_by_css_selector("#kw")
3)通过标签名来定位
可以直接使用标签名,但是重复概率较大。
find.element_by_css_selector(”input")
1> 通过>大于号表示父子关系。
find.element_by_css_selector(”.span>input") span是父亲元素。input是子元素
2> 通过属性定位
find.element_by_css_selector(”[name='kw']")
对属性值kw,可以加引号,也可以不加。但要注意整个字符串的引号区分。引号不能交叉用,可以嵌套。
3> 组合定位
css可以通过标签,父子关系,属性,id。组合定位元素。
driver.find_element_by_css_selector("form#form>span>input.s_ipt").send_keys("loveyou")
4.1.9用BY定位元素
除了前面介绍的八种方法,webview还有另一套写法,即统一调用find_element()方法,通过BY来声明定位的方法,并对定位方法传递参数。具体如下:
find_element(By.ID,"kw")
find_element(By.NAME,"wd")
find_element(By.CLASS,"s_ipt")
find_element(By.TAG_NAME,"input")
find_element(By.LINK_TEXT,"新闻")
find_element(By.PARTIAL_LINK_TEXT,"新")
find_element(By.XPATH,"//*[@class='bg.s_btn']")
find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")
阅读全文
0 0
- 20170922学习笔记Selenium 2第四章WebDriver API 4.1定位元素
- 20171017学习笔记Selenium 2 第四章WebDriver API 4.8定位一组元素4.9多表单切换4.10多窗口切换
- 20171013学习笔记Selenium 2 第四章WebDriver API 4.6获得验证消息 4.7设置元素等待
- 20171021学习笔记Selenium 2第四章WebDriver API 4.11警告处理4.14操作Cookie
- 20171012学习笔记Selenium 2 第四章WebDriver API 4.2控制浏览器 4.3简单元素操作4.4鼠标事件4.5键盘事件
- 【selenium学习笔记】webdriver进行页面元素定位
- selenium webdriver 学习总结-元素定位
- selenium webdriver 学习总结-元素定位
- Selenium + Webdriver 学习(四) 元素定位方法
- Selenium webdriver 学习总结-元素定位
- selenium webdriver 学习总结-元素定位
- Selenium + Webdriver 学习(四) 元素定位方法
- Selenium webdriver 学习总结-元素定位
- Selenium webdriver 学习总结-元素定位
- selenium WebDriver定位元素学习总结
- selenium WebDriver定位元素学习总结
- Selenium webdriver 学习总结-元素定位
- selenium webdriver定位元素
- c++中ctype常用函数总结
- Scala 之 mysql 数据库连接池
- 设计模式之单例模式
- Spring Security笔记:Remember Me(下次自动登录)
- Java反射机制
- 20170922学习笔记Selenium 2第四章WebDriver API 4.1定位元素
- 利用SVD分解做协同过滤推荐
- MVP+Retrofit+RxJava
- linux内核中的GPIO系统之(2):pin control subsystem
- 讯飞文字转语音_unity3D
- 随笔
- 欢迎使用CSDN-markdown编辑器
- extern c
- 欢迎使用CSDN-markdown编辑器