📅  最后修改于: 2023-12-03 14:47:22.336000             🧑  作者: Mango
在使用Selenium WebDriver定位元素时,XPath是一种非常常用的方式。而当需要根据元素属性值的开头部分来定位元素时,可以使用XPath中的starts-with()
函数。
具体用法为:
driver.find_element_by_xpath("//tag[starts-with(@attribute,'value')]")
其中,tag
为元素的标签名,attribute
为元素的属性名,value
为属性值的开头部分。
下面是一些例子:
在百度搜索框中输入关键字"hello",可以使用以下代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# 根据id定位输入框,并输入关键字
driver.find_element_by_xpath('//input[starts-with(@id,"kw")]').send_keys("hello")
# 根据id定位搜索按钮,并点击
driver.find_element_by_xpath('//input[starts-with(@id,"su")]').click()
# 关闭浏览器
driver.quit()
代码解释:
input
标签中有一个 id
属性,starts-with(@id,"kw")
表示 id 值以 "kw"
开头,即匹配 kw
属性。input
标签中有一个 id
属性,starts-with(@id,"su")
表示 id 值以 "su"
开头,即匹配 su
属性。在百度首页中点击 "糯米",可以使用以下代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
# 根据文本内容定位链接,并点击
driver.find_element_by_xpath('//a[starts-with(text(),"糯米")]').click()
# 关闭浏览器
driver.quit()
代码解释:
a
标签中有文本内容,starts-with(text(),"糯米")
表示文本内容以 "糯米"
开头。starts-with()
函数可以根据元素属性值的开头部分来定位元素,非常实用。需要注意的是,属性值必须用双引号或单引号括起来。