假设我有这个(假的)JavaScript代码:
asynchronousOperation.addEventListener("completed",
function (event) {
if (event.property == "required value") tell Selenium we are good;
else tell Selenium the test failed;
});
asynchronousOperation.run();
我正在使用Python编写测试,但我认为如果使用其他语言,我会找到一种方法来调整代码。
到目前为止我能管理的最好的事情是将结果写在页面的某个位置,然后使用计时器检查该位置。但这听起来好像可以做得更好。
答案 0 :(得分:1)
你正走在正确的轨道上。 Adam Goucher将这种机制称为“JavaScript锁存器”,它正是您想要使用的那种构造。通常,您希望将它与WebDriverWait
构造一起使用,该构造应该在大多数语言绑定中可用,包括Python。 WebDriverWait
建立超时,但轮询所需的条件,一旦满足条件或达到超时就返回。在这种情况下,条件将是具有适当值的页面上的JavaScript变量。