使用XPath查找元素

时间:2015-11-19 13:29:19

标签: python-2.7 selenium xpath

我想点击"创建帐户"用于使用xpath的gmail。

<span id="link-signup">
<a href="https://accounts.google.com/SignUp?service=mail&amp;continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&amp;ltmpl=default">
  Create account
  </a>
  </span> 

我在python中的代码:

elem=driver.find_element_by_xpath("//*[@span='link-signup']").click()

我不确定错误是什么。我知道如何通过id点击链接,但我想学习如何通过xpath来实现这一目的。

3 个答案:

答案 0 :(得分:1)

尝试使用:
'.//'选择标记为span的子节点,并使用方括号按属性选择它,即id

elem=driver.find_element_by_xpath('.//span[@id="link-signup"]').click()

答案 1 :(得分:0)

使用following-sibling尝试:

driver.find_element_by_xpath("//span[@id='link-signup']/following-sibling::a").click()

答案 2 :(得分:0)

以下是一些用于检索“创建帐户”链接的示例XPath:

//Returns an a element with the exact text 'Create account'
//a[.='Create account']

//Returns an 'a' element that is the child of a span element with the id 'link-signup'
//span[@id='link-signup']/a

问题//*[@span='link-signup']中给出的XPath不是有效的XPath,因为@span='link-signup'谓词试图找到一个跨度属性等于的元素'link-signup',而您问题中提供的HTML有一个span元素, id 属性等于'link-signup'

此外,您问题中给出的XPath不会尝试返回包含您要单击的链接的a元素。