📜  Selenium Webdriver-XPath定位-使用starts_with()(1)

📅  最后修改于: 2023-12-03 14:47:22.336000             🧑  作者: Mango

Selenium Webdriver-XPath定位-使用starts_with()

在使用Selenium WebDriver定位元素时,XPath是一种非常常用的方式。而当需要根据元素属性值的开头部分来定位元素时,可以使用XPath中的starts-with()函数。

具体用法为:

driver.find_element_by_xpath("//tag[starts-with(@attribute,'value')]")

其中,tag为元素的标签名,attribute为元素的属性名,value为属性值的开头部分。

下面是一些例子:

例子1

在百度搜索框中输入关键字"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 属性。
例子2

在百度首页中点击 "糯米",可以使用以下代码:

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() 函数可以根据元素属性值的开头部分来定位元素,非常实用。需要注意的是,属性值必须用双引号或单引号括起来。