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()
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值