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

标签 javascript css selenium-webdriver webdriver

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

我本质上是在尝试关注 this article ,出于某种原因建议使用 WebdriverJS 而不是“官方”SeleniumJS 绑定(bind)。

我想设置一个简单的脚本来导航到我们的主页,然后单击指向关于 页面的链接。 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()函数本质上只有两行解释。

最佳答案

Webdriverjs 支持使用 xpath 选择元素,您可以使用它。我最初的印象是它比使用 jquery 风格的选择器更难,但最终它并没有那么糟糕。

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

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

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

关于javascript - 使用 webdriverjs 进行集成测试的复杂 CSS 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18710663/

相关文章:

javascript - 只是想看看是否有一种方法可以将字符串变量连接到 onclick 函数上?

java - 为什么 Java WebDriver 不使用更新的 WebDriver 扩展启动 Firefox?

python - 如何将 url 作为用户输入传递以通过 Selenium 和 Python 进行调用?

javascript - jQuery 日期选择器功能

javascript - 数组推送结果为空数组javascript

html - 仅悬停单词时限制工具提示显示

javascript - 使用 WebElement.isEnabled() 启用禁用 anchor 返回

javascript - 将 div 置于另一个 div 之下

javascript - 在javascript中将日期格式从mm-dd-yyyy转换为yyyy-mm-dd

javascript - 如何使 bootstrap 表头宽度与主体宽度对齐?