等到元素 active/enabled 才能对 Siteprism Capybara 执行操作(如 click/select)?

Wait until element is active/enabled to perform action(like click/select) on Siteprism Capybara?

在 Siteprism 中,我需要找出在执行 click/select.

等任何操作之前等待元素被启用

目前我正在通过 Siteprism 使用它:

@page.wait_for_page_element(10)

但看起来还不够等待。由于元素可见但未启用,我的脚本仍然失败。需要一个解决方案。

你没有展示你是如何定义元素的 - 但我假设你只是做了类似 element :page_element, '#my_page_element' 的事情 - 问题是它没有给出任何迹象表明该元素实际上是一个一个字段,不允许使用任何字段匹配过滤器。相反,如果您将元素定义为

element :page_element, :field, '#my_page_element'

然后我相信在它上面调用 wait_for_page_element 实际上会等待它被启用,因为默认情况下 Capybara 只找到启用的字段。如果没有,或者如果您想等待禁用字段出现在页面上,那么您可以将过滤器选项(禁用、选中、只读等)传递给 wait_for_page_element

@page.wait_for_page_element(10, disabled: false)