【问题标题】:dalekjs click on link that contains textdalekjs 点击包含文本的链接
【发布时间】:2014-05-09 08:38:08
【问题描述】:

我想要做的是从列表中取出一个元素。 我想获取链接中的文本,如果它包含正确的文本,请单击该链接。 这是html代码:

<table>
     <tr>
        <td><a href='...'>I need help</a></td>
        <td><a href='...'>Oh hello</a></td>
        <td><a href='...'>Lorem ipsum</a></td>
     </tr>
</table>

我试过了:

.click('table > tr > td > a:contains("I need help")')

但由于某种原因它不起作用。

我不能用这个:

.click('table > tr > td:nth-child(1) > a)

因为随着网站变大,会添加更多的 tr 标签。

有什么想法吗?

【问题讨论】:

    标签: dalekjs


    【解决方案1】:

    首先,您的 HTML 代码有点扭曲; a 必须是元素的子元素,而不是反过来。我建议阅读有关元素的 MDN 文档。

    关于您与 Dalek 的问题; Dalek 使用它所执行的浏览器的 CSS 选择器引擎。这将在未来发生变化(被 Sizzle 取代为统一的选择器引擎),但我不知道这个未来究竟会是什么时候。

    关于 :contains() 伪选择器 - 据我所知,这已经消失了。当前的 CSS3 规范已将其删除,因此您不能在 Dalek 选择器中使用它。

    【讨论】:

      【解决方案2】:

      我找不到检查链接文本的方法,但如果您知道 href,请尝试使用它

      .click('a[href="uniqueURL"]')
      

      【讨论】:

      • 我也试过了,但问题是我的网站自己创建了 href,都以相同的开头,并以 /231983nkjdasbdin2983u1ndsaknn1 之类的结尾,每次我修补它时,都会有一个新链接参考文献。
      • 我遇到了同样的问题,但似乎 (github.com/dalekjs/dalek/issues/3) 我们仅限于标准 CSS 选择器 - w3.org/TR/css3-selectors/#selectors
      • 感谢您的帮助,我现在看到确实没有办法这样做。希望尽快添加,真的很有帮助!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多