lengyue869 发表于 2020-12-19 16:04:36

xpath怎么点击完全匹配指定文字的标签?

比如我要点击百度首页的"学术",可以用xpath包含"学术"字样的'//a',
但是如果我要点击完全等于"学术"的标签该怎么写呢?


<a class="mnav c-font-normal c-color-t"target="_blank">学术</a>



from selenium import webdriver

driver=webdriver.Ie()
driver.get('https://www.baidu.com/')
driver.find_element_by_xpath('//a').click()


lengyue869 发表于 2020-12-19 21:37:49

up up ~

YunGuo 发表于 2020-12-19 22:48:51

EC模块可以判断文本
下面例子,文本如果存在,result的值为True,否则为False
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Ie()
driver.get('https://www.baidu.com/')
locator = ('xpath', '//*[@id="s-top-left"]/a')
text = '学术'
result = EC.text_to_be_present_in_element(locator, text)(driver)
print(result)

lengyue869 发表于 2020-12-20 20:29:33

YunGuo 发表于 2020-12-19 22:48
EC模块可以判断文本
下面例子,文本如果存在,result的值为True,否则为False

你好,我的意思能不能根据文字(例如:"学术")来判断元素,然后点击元素.

YunGuo 发表于 2020-12-20 21:37:41

本帖最后由 YunGuo 于 2020-12-20 21:42 编辑

lengyue869 发表于 2020-12-20 20:29
你好,我的意思能不能根据文字(例如:"学术")来判断元素,然后点击元素.

那你使用text()进行绝对匹配吧,如果元素中内容等于学术,则点击,否则报错,自己加个异常处理。
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Ie()
driver.get('https://www.baidu.com/')
driver.find_element(By.XPATH, '//*[@id="s-top-left"]/a').click()
页: [1]
查看完整版本: xpath怎么点击完全匹配指定文字的标签?