Python中的Selenium显示无法使用xpath表达式定位元素

时间:2016-02-22 07:42:55

标签: python selenium xpath

我写得像这样

repos=driver.find_elements_by_xpath('//a[@class="execute repo-list--repo-name"]')
choice=input()
ch=repos[choice-1].text
print ch #prints choice1
driver.find_element_by_xpath('//a[contains(text(),"%s"]' % ch).click()

表示HTML代码

<a class="execute repo-list--repo-name" href="/vivek-puri/choice1">choice1</a>

但它显示错误

The given selector //a[contains(text(),"choice1"] is either invalid or does not result in a WebElement.

为什么它会显示这样的错误,尽管带有文本choice1的元素退出。

2 个答案:

答案 0 :(得分:1)

这是因为括号。你忘了第二个括号: 使用

//a[contains(text(),"choice1")]

而不是

//a[contains(text(),"choice1"]

答案 1 :(得分:1)

您在选择器中的choice1后缺少括号。它应该是

//a[contains(text(),"choice1")]

您还可以使用by_link_textby_partial_link_text

find_element_by_link_text('choice1')

find_element_by_partial_link_text('choice1')