【发布时间】:2017-10-15 23:48:53
【问题描述】:
我在看一棵巨大的dom树。使用 NodeJS/Selenium,我特别需要在 a 标签中按标题查找,并且需要单击关联的 href。我对正则表达式非常陌生,并且已经遇到很多错误。
这是我迄今为止最好的尝试:
By.xpath(//ul/class='slds-grid'//a[title="${uniqueStringToMatch}"]).click()
得到
InvalidSelectorError:无效选择器:无法使用 xpath 定位元素 表达式 //ul/class='slds-grid slds-grid--pull-padded slds-wrap list'//a[text()="Load Client Referrals"] 因为以下 错误:语法错误:无法对“文档”执行“评估”:类型 计算表达式时转换失败。
下面的树省略了上面的所有层次结构,因为我认为这并不重要,但如果我错了,请纠正我。从树中的第一个唯一的 className...
<ul class='slds-grid'>
<li class='slds-col'>
<a class="app_launcher" href="thelinkIwantToclick" title="uniqueStringToMatch"
<span class="label-ctr">
</a>
</li>
<li class='slds-col'>
<a class="app_launcher" href="thelinkIwantToclick" title="uniqueStringToMatch"
<span class="label-ctr">
</a>
</li>
<li class='slds-col'>
<a class="app_launcher" href="thelinkIwantToclick" title="uniqueStringToMatch"
<span class="label-ctr">
</a>
</li>
</ul>
li 中的所有标题都是唯一的。
我正在使用W3学校学习,但是这里时间不多了。
(我也在寻找自己编写 xpath 的最快方法 - 工具或教程将不胜感激!)
【问题讨论】:
-
@Mark 现在我正在使用这个: //ul[@class="slds-grid"]/li/a[@title="uniqueStringToMatch"] 我收到一个新错误:NoSuchElementError:没有这样的元素:无法定位元素:{"method":"xpath","selector":"//ul[@class='slds-grid slds-grid--pull-padded slds-wrap list']/li /a[@title="Accounts"]"} 我用 Chrome Xpath Helper 插件验证了这是完美的 xpath
标签: javascript html selenium dom xpath