复杂的CSS选择器,用于使用webdriverjs进行集成测试

Complex CSS selectors for integration testing using webdriverjs

本文关键字:webdriverjs 集成测试 用于 CSS 选择器 复杂      更新时间:2023-09-26

我正在尝试使用以下技术堆栈编写一些集成测试:Selenium(JavaScript绑定),WebdriverJS,Mocha和Chai。

我基本上是在尝试遵循这篇文章,出于某种原因,它建议使用WebdriverJS而不是"官方"SeleniumJS 绑定。

我想设置一个简单的脚本来导航到我们的主页,然后单击指向About页面的链接。该网页如下所示:

<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()函数基本上只有两行解释。

Webdriverjs 支持使用 xpath 选择一个元素,你可以使用它。我最初的印象是它比使用 jquery 样式的选择器更难,但最终结果并不那么寒酸。

对于上面的选择器,可以在 xpath 中重写它,如下所示:

//a/span[text()="About"]

请注意,上面的选择器实际上是在选择链接内的span,而不是选择包含此范围的链接。我不太确定如何像您一样选择链接本身,但我认为 xpath 也支持类似的东西。对于您的测试,上面的选择器仍然可能有效...