我需要在下面找到以下元素的 XPath:
<a> href="/resident/register/">Register another device </a>
我以为解决方案是
$x("//*[contains(@href, 'resident/register')]")
但这一无所获。有什么想法吗?
您的 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
属性,因此无法单击。
首先@kjhughes确定了 HTML 的一个问题,即 HTML 格式不正确,因为您必须尝试根据您的理解提供正确的 HTML。
我想实际的HTML如下:
<a href="/resident/register/">Register another device </a>
因此,元素的有效 XPath 可以是以下任一:
经验:1
"//a[contains(@href, '/resident/register') and contains(.,'Register another device')]"
经验值:2
"//a[contains(@href, '/resident/register') and normalize-space()='Register another device']"