我阅读了有关接口 WebElement 的方法单击的信息,但不清楚“如果 click() 导致通过事件加载新页面或通过发送本机事件完成”这样的语句是什么意思?
问问题
89 次
1 回答
1
这是完整的javadoc:
单击此元素。如果这导致加载新页面,则此方法将尝试阻止,直到页面加载。此时,您应该放弃对该元素的所有引用,并且对该元素执行的任何进一步操作都将引发 StaleElementReferenceException,除非您知道该元素并且页面仍然存在。如果 click() 导致通过事件加载新页面或通过发送本机事件完成,则该方法将 不等待加载,调用者应验证是否已加载新页面。
这意味着如果在浏览器中发出新请求,则 click() 是一个阻塞调用。并在页面加载时返回。
当 click() 执行一些加载新页面(或其部分)(ajax)的 javascript 时,click() 不是阻塞调用。在这种情况下,您必须使用 WebDriverWait 并等待一些 css-classes / ids / text 出现。
于 2012-07-13T13:53:49.643 回答