我正在尝试使用以下技术堆栈编写一些集成测试:Selenium(JavaScript绑定),WebdriverJS,Mocha&柴。
我基本上是在尝试关注this article,由于某种原因建议使用WebdriverJS
而不是“官方”SeleniumJS绑定。
我想设置一个简单的脚本来导航到我们的主页,然后点击指向About
页面的链接。 HTML如下:
<ul id="nav">
...
<li>
<a href="/about/">
<span>About</span>
</a>
</li>
...
</ul>
现在,我写了这段代码来点击这个链接:
client
.url(my_url)
.getTitle (err, title) ->
expect(err).to.be.null
.click 'a[href*="about"]', (err) ->
expect(err).to.be.null
不幸的是,最后一行总是抛出一个错误。我意识到我正在使用嵌套的CSS选择器,这可能很难解析。但是,当我尝试使用浏览器中的jQuery
访问此元素时,我确实得到了具有完全相同行的对象。
关于这种情况下可能出现的问题的任何想法?
注意(个人):WebdriverJS
的文档极差,而.click()
函数基本上只有两行解释。
答案 0 :(得分:0)
Webdriverjs支持使用xpath选择元素,您可以使用它。我最初的印象是它比使用jquery风格的选择器更难,但最终结果并非如此简陋。
对于上面的选择器,可以在xpath中重写它,如下所示:
//a/span[text()="About"]
请注意,上面的选择器实际上是在链接中选择span
,而不是选择包含此范围的链接。我不太确定如何在你的情况下选择链接本身,但我认为xpath也支持这样的东西。对于您的测试,上面的选择器仍然可以工作......