如何使用 XPath 查找标签并使用 Capybara 单击它

How to find a tag using XPath and click it using Capybara

使用 Ruby、Capybara、Selenium、Cucumber、XPath 等在我的自动化项目中查找元素和单击的最佳方法是什么

我需要单击并展开(等距手风琴)的 HTML 元素是:

<a href="javascript:;" class="dcjq-parent">
  <i class=""></i>
  <span>Customs Reports</span>
  <span class="dcjq-icon"></span>
</a>

我目前使用 XPath 命令查找元素并单击,但效果不是很好,因为它正在查找元素,但有时会单击,有时不会。

page.find(:xpath, "//*[text()='Customs Reports']").click

要在水豚中单击 link,您可以使用:

click_link 'Customs Reports'

另一种方式是:

find('span', text: 'Customs Reports').click

正如@mechnicov 所说,"proper" 单击 link 的方法是使用 click_link 'Customs Reports',但是它的行为可能与您正在做的没有任何不同。

这是因为水豚会在 "sees" 后立即单击 link,这可能是在附加所需的 JavaScript 行为之前,或者 [=24] =] 正在页面中动画化(移动)。

任何一个都可以产生您所看到的片状行为,因为 JavaScript 行为不会触发,或者如果动画因为点击可能错过移动 link。您可以通过在点击前添加 sleep 来测试它,但修复它的正确方法是在页面上声明某些内容,表明该页面实际上已准备好供用户输入。

该断言完全取决于您正在测试的应用程序以及页面上实际发生的情况。