javascript - InvalidSelectorError,需要帮助定义我的 xpath 选择器

标签 javascript html selenium dom xpath

我正在看着一棵巨大的 dom 树。使用 NodeJS/Selenium,我特别需要在 a 标签中按标题查找,并且需要单击关联的 href。我对正则表达式非常陌生,并且已经收到很多错误。

这是我迄今为止最好的尝试:

By.xpath(//ul/class='slds-grid'//a[title="${uniqueStringToMatch}"]).click()

获取

InvalidSelectorError: invalid selector: Unable to locate an element with the xpath expression //ul/class='slds-grid slds-grid--pull-padded slds-wrap list'//a[text()="Load Client Referrals"] because of the following error: SyntaxError: Failed to execute 'evaluate' on 'Document': Type conversion failed while evaluating the expression.

下面的树省略了上面的所有层次结构,因为我认为这并不重要,但如果我错了,请纠正我。从树中第一个唯一的类名开始...

    <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 的最快方法 - 工具或教程将非常感激!)

最佳答案

我现在无法测试它,但我通常使用@语法来匹配XPath中的属性。这样的东西对你有用吗?

By.xpath("//ul[@class='slds-grid']//a[@title='${uniqueStringToMatch}']").click()

我还发现很难找到简单 XPath 的初级教程,最终通过反复试验学到了很多东西。还有一个适用于 Chrome 和 Firefox 的扩展,它可以为网页中的元素生成 XPath 字符串,我从中学到了很多东西。

关于javascript - InvalidSelectorError,需要帮助定义我的 xpath 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009201/

相关文章:

java - Selenium:网页弹出/警报/通知消息的元素不可见异常

python - 获取所有链接并迭代列表(机器人框架)

javascript - jQuery 倒计时/用服务器端值进行计数

javascript - jQuery 无法识别动态插入的 DOM 元素?

javascript - 添加隐藏的表单输入

javascript - 为表中的每个 td 添加唯一的事件监听器

javascript - 检测特定的ajax事务

html - 更改响应式 HTML 通讯模板的宽度 来自 Charles Mudy

javascript - 使用 html 和 Javascript 选择国家和州

python - Selenium Python webscraper 真的很慢