正在尝试从此HTML片段创建XPath
我写XPath已经玩了一段时间了,但是我想不出我到底想要什么 我正在尝试基于已知文本(下面代码段中的myidentity)为链接(下面代码段中的click1和click2)编写XPath。有人能研究一下并提出可能的解决方案吗 HTML代码段:正在尝试从此HTML片段创建XPath,xpath,selenium,Xpath,Selenium,我写XPath已经玩了一段时间了,但是我想不出我到底想要什么 我正在尝试基于已知文本(下面代码段中的myidentity)为链接(下面代码段中的click1和click2)编写XPath。有人能研究一下并提出可能的解决方案吗 HTML代码段: <div class="abc"> <a onclick="mycontroller.goto('xx','yy'); return false;" href="#"> <img src="images/contr
<div class="abc">
<a onclick="mycontroller.goto('xx','yy'); return false;" href="#">
<img src="images/controls/inheritance.gif"/>
</a>
myidentity
<span>
<a onclick="mycontroller.goto('xx','yy'); return false;" href="#">click1</a>
<a onclick="mycontroller.goto('xx','yy'); return false;" href="#">click2</a>
</span>
</div>
我的身份
请参阅宏的答案-应使用此表格
//div[text()[contains(., "myidentity")]]/span/a[2]
以下内容仅适用于包含div中的一段文本
您需要根据包含身份文本的文本进行选择
click1的Xpath
//div[contains(text(),"myidentity")]/span/a[1]
click2的Xpath
//div[contains(text(),"myidentity")]/span/a[2]
如果看不到HTML的其余部分,很难说,但以下内容应该可以工作:
//div[text()[contains(., "myidentity")]]/span/a
这里不需要使用XPath,可以使用CSS定位器。在不同的浏览器中,它们通常更快、更兼容
css=div:contains(myidentity) > span a:nth-child(1) //click1
css=div:contains(myidentity) > span a:nth-child(2) //click2
请注意,
仅用于解决Selenium使用的CSS定位器库中的一个错误。Html代码片段:===========================================myidentity请注意,在同一页面上有类似的click1和click2,但有不同的myidentity文本。这就是为什么我们需要基于MyIdentity编写这样的xpath。请将所有代码放在问题的正文中,并使用代码格式(图标看起来像二进制)。prodigitalson,我在问题的正文中添加了html代码,但我在发布注释后没有看到它出现,这就是为什么我在注释字段中粘贴了html代码。对不起,事实上这是在问题的主体部分。。。它是jsutn呈现html,而不是在pre/code标记中。我为您修复了它:-)在示例中,假设div标记有多个文本元素,这将导致上述失败,因为包含的第一个参数必须是单个element@Macros:没错//div[text()[contains(,“myidentity”)]]/span/a[2]
更好。+1-更新了我的答案以反映不同的谓词great…谢谢你们,这是你们提供的XPath,很好。你们应该接受宏的答案,因为他有你们实际使用的东西。