微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

selenium八大定位方法二

7.XPath定位

7.1 绝对路径

太繁琐了,耗时,不想用

7.2 元素属性定位

使用title属性定位CSDN主页的“招聘”:

driver = webdriver.Chrome()
driver.get('https://www.csdn.net')
driver.find_element_by_xpath("//a[@title='招聘']").click()

使用id属性定位csdn主页的“写博客”:

driver = webdriver.Chrome()
driver.get('https://www.csdn.net')
driver.find_element_by_xpath("//a[@id='blogClick']").click()

使用title属性定位CSDN主页的“问答”:

driver = webdriver.Chrome()
driver.get('https://www.csdn.net')
time.sleep(1)
driver.find_element_by_xpath("//*[@title='问答']").click()

7.3 层级+属性 定位

   要定位的元素没有唯一标识时,可以通过向上查找有唯一标识属性的元素。

   例如:定位csdn页面的第一条推荐内容

driver = webdriver.Chrome()
driver.get('https://www.csdn.net')
driver.find_element_by_xpath("//*[@id='Feedlist_id']/li/div/div/h2/a").click()

7.4 使用逻辑运算符

  如果一个属性不能唯一区分一个元素,就可以使用逻辑运算符连接多个属性来查找

  例如:定位百度输入框和百度搜索

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.find_element_by_xpath("//input[@id='kw' and @name='wd']").send_keys('自动化测试')
driver.find_element_by_xpath("//input[@id='kw' and @name='wd']").click()

7.5 contains定位

用于匹配属性中包含的字符串,又叫模糊查询

定位csdn主页的“博客

driver = webdriver.Chrome()
driver.get('https://www.csdn.net')
time.sleep(2)
driver.find_element_by_xpath("//a[contains(@class,'toolbar_to_Feed')]").click()

与text()配合使用时,不需要"@"符号。定位csdn主页的“论坛”

driver = webdriver.Chrome()
driver.get('https://www.csdn.net')
time.sleep(2)
driver.find_element_by_xpath("//a[contains(text(),'论坛')]").click()

7.6 text()定位

用于匹配显示的文本信息

定位csdn页面的“论坛”:

driver = webdriver.Chrome()
driver.get('https://www.csdn.net')
time.sleep(2)
driver.find_element_by_xpath("//a[text()='论坛']").click()

 

 

李先生的反馈 发布了2 篇原创文章 · 获赞 0 · 访问量 67 私信 关注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐