2

在我单击具有“click_no_wait”方法的按钮后,在发生任何事情之前都会延迟近一秒钟......为什么会这样?

这是一个示例(按钮的黄色闪烁和弹出窗口之间的明显延迟):

require 'watir'
b = Watir::Browser.start "www.w3schools.com/js/tryit.asp?filename=tryjs_alert"
b.frame(:name, "view").button(:text, "Show alert box").click_no_wait

如果我将“click_no_wait”替换为“click”,则单击按钮后不会有任何延迟(弹出窗口会立即显示)。但是这里不能使用“点击”,因为脚本会挂起......

这种延迟有什么解决办法吗?(真的不是什么大问题,只是问......)

4

1 回答 1

2

它启动一个单独的进程。

好处是它可以防止挂起,因为主进程可以立即处理。不利的一面是,建立一个流程本身需要时间。

这是在任何使用单独进程或单独线程的任何语言中都可以找到的平衡——在某些情况下提高了响应能力和提高了性能,但本身就有开销。

您可能会发现感兴趣的http://itreallymatters.net/post/1366392123/debugging-and-improving-watirs-click-no-wait-method

于 2012-09-01T10:14:24.210 回答