以下元素的XPath是什么?

时间:2019-02-11 13:50:59

标签: python html xml selenium xpath

我需要在下面的以下元素中找到XPath:

<a> href="/resident/register/">Register another device </a>

我认为解决方法是

$x("//*[contains(@href, 'resident/register')]")

但是这什么也没返回。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您的HTML格式不正确。

更改

<a> href="/resident/register/">Register another device </a>

<a href="/resident/register/">Register another device </a>

然后您的XPath将按预期工作。

如果您的HTML是固定的,则必须调整XPath来测试元素内容而不是href属性内容:

//a[contains(.,'resident/register')]

但是,尽管它可以选择格式错误的a元素,但由于缺少适当的href属性,因此无法点击。

答案 1 :(得分:0)

首先,@ kjhughes指出了 HTML 的问题之一,即 HTML格式错误,因为您必须根据自己的理解尝试提供正确的HTML。< / p> 我认为

实际的 HTML 如下:

<a href="/resident/register/">Register another device </a>

因此该元素的有效 XPath 可以是以下任意一项:

  • XPath:1

    "//a[contains(@href, '/resident/register') and contains(.,'Register another device')]"
    
  • XPath:2

    "//a[contains(@href, '/resident/register') and normalize-space()='Register another device']"
    

答案 2 :(得分:-1)

您可以右键单击chrome上的元素,然后复制XPath。

在Chrome上,检查>右键单击您的元素>复制XPATH