gpt4 book ai didi

javascript - 如何使用 Watir 单击由 javascript 生成的元素?

转载 作者:行者123 更新时间:2023-11-30 06:36:16 28 4
gpt4 key购买 nike

我正在使用名为 primefaces 的库开发基于 jsf 的应用程序。Primefaces 生成一个网页,其中包含生成一些按钮的 javascript 函数。按钮在页面的源代码中是不可见的(比如 ,所以 Watir 不能点击这些按钮来测试某些东西。

我的问题是:是否可以使用 Watir 恢复由 javascript 函数生成的按钮的 ID 或类?

谢谢

最佳答案

在实践中,使用sleepnot recommended .根据浏览器和 JavaScript 代码执行其操作所花费的时间,您可能会遇到竞争条件并最终得到仅在有时 有效的测试。

If you're considering using sleep, use wait_until instead. It will make your test code more resilient to timing issues in those cases where you really need to use it.

正如@JustinKo 所推荐的,您可能应该使用 Watir 的 wait methods等待元素显示在页面上。

在您的情况下,您想尝试以下示例:

# Assuming your browser object is named: $b
#Ex: $b = Watir::Browser.new :chrome
$b.button(:id => 'my_button').wait_until_present
Watir::Waiter::wait_until { $b.button(:id => 'my_button').visible? }

如果您在页面上找不到该元素,您可能需要查看 FireBug 中的源代码或 Chrome 中的开发人员工具控制台 (Shift+Ctrl+I)。尝试找到该按钮的一些标识属性,或具有 idclassname 或其他标识属性的容器元素。

但是,目前我不确定是否有一种方法可以检测元素是否由 JavaScript 生成或添加到 DOM。

关于javascript - 如何使用 Watir 单击由 javascript 生成的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14263228/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com