2

我想使用 wait_until 方法,直到我的元素可见。目前我正在使用 Siteprism 方法,如下所示。这是一个内置的 Siteprism 方法,但看起来它的性能不佳,因为它间歇性地抛出错误(DOM 中不存在对象)。

@home.wait_until_btn_element_visible

所以我想使用水豚的查找方法。可证明这是一个更好的最简单的解决方案。但是我在定义 CSS 时遇到了麻烦。正如我在 ruby​​ 类中定义 css 一样。我想在下面的代码中使用该变量。我怎样才能做到这一点?

page.find('#blah').visible?.should be_true

我想要这样的东西:

page.find(@home.btn_element).visible?.should be_true

看起来它不起作用,而是在下面抛出这个错误:

invalid selector: An invalid or illegal selector was specified

需要帮助.....或任何其他解决方案将不胜感激..

4

1 回答 1

1

#find接受选择器类型和某种类型的参数,它不接受页面中的元素。由于(在快速查看源代码之后)它似乎没有element :btn_element, ...从 site_prism 访问您声明中指定的参数,因此您无法在#find不重新输入选择器的情况下调用。话虽这么说,由于 site_prism 最终调用 Capybaras find 并指定,因此您所说的@home.wait_until_btn_element_visible和您想要做的确实应该没有区别。visible: true唯一的区别是 site_prism 使用自己的等待超时,因此您可能想尝试增加 SitePrism::Waiter.default_wait_time 或在 wait_until_xxx 调用中指定更长的等待超时

@home.wait_until_btn_element_visible(10)
于 2016-05-24T16:56:54.560 回答