【发布时间】:2018-03-15 22:48:18
【问题描述】:
在我的测试自动化中,我目前以这种方式点击页面元素: 睡觉2
on(MyPage).generate_button_element.when_present.click
sleep 5
on(MyPage).button.when_present.click
在上面,我单击“generate_button”,它将运行一些 JS,创建一个按钮,然后单击下一个按钮。在这种情况下,它可以工作。但是,我想知道是否有办法可以消除睡眠呼叫。我尝试了以下方法:
on(MyPage).generate_button_element.wait_until_present.click
on(MyPage).button.wait_until_present.click
但它不起作用。我收到以下错误:
Selenium::WebDriver::Error::UnknownError: unknown error: Element
有什么方法可以让我等待这些元素,或者睡眠是我唯一的选择吗?
调试记录器输出:
"2017-10-04 14:15:41 INFO Selenium <- {"sessionId":"3db2d4a2c23ddd03e43622f3dfcbbab7","status":12,"value":{"message":"invalid element state: Element is not currently interactable and may not be manipulated\n (Session info: chrome=61.0.3163.100)\n (Driver info: chromedriver=2.31.488774 (7e15618d1bf16df8bf0ecf2914ed1964a387ba0b),platform=Mac OS X 10.12.6 x86_64)"}}
"
【问题讨论】:
-
您使用的是什么版本的 Watir?使用最新版本的 Watir,希望您不需要任何显式等待。另外,您使用的是什么版本的 Page-Object?
-
我正在使用页面对象 2.2 和 Watir 6.7.3。如果我将其更新为 watir 的后一个版本,我的程序将无法正常工作,因为我认为它破坏了页面对象。
-
在 Watir 6.8.x 版本中修复了许多等待相关的错误/问题。 Page-Object 2.3 进行了一些更新以解决 Watir 6.8 中所做的更改。我建议尝试升级这两个 gem,看看是否能解决问题。
-
2.3?我将 2.2.4 视为最新版本。
-
对不起,我想我读错了更改日志。我的意思是2.2.3。
标签: ruby selenium automated-tests cucumber watir