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()
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 层级+属性 定位
要定位的元素没有唯一标识时,可以通过向上查找有唯一标识属性的元素。
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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。