0


Selenium实现动态定位

在Selenium定位时,有可能会遇见有些元素标签属性值是随机生成的,导致无法通过这些属性值定位。比如一个div的id=“test_109828”,这id后面的数子串是随机生成的,无法通过id定位,但是其前面开头的test_是不会变的。我们就可以通过xpath提供的模糊定位方法进行定位:

driver.find_element_by_xpath("//div[satrts-with(@id,'test_')]")

像这样的模糊定位方法xpath提供了三个:

a属性的值以b开头
starts-with(a,b)
a属性的值以b结尾
ends-with(a,b)
a属性的值包含b
contains(a,b)

其中a是标签的属性比如@id、@value等,b是a属性值中的部分不变内容。

就以百度首页为例子展示一下代码怎么写(谁然这个不是动态的):

from selenium import webdriver
url ='https://www.baidu.com/'
driver = webdriver.Chrome()
driver.get(url)# 定位id以k开头的input标签
driver.find_element_by_xpath("//input[starts-with(@id,'k')]").send_keys("hhhhh")# 定位value为包含’百度一下‘的input标签
driver.find_element_by_xpath("//input[contains(@value,'百度一下')]").click()

本文转载自: https://blog.csdn.net/weixin_54575205/article/details/126929932
版权归原作者 今天也是敲代码的一天哦 所有, 如有侵权,请联系我们删除。

“Selenium实现动态定位”的评论:

还没有评论