从JavaScript回拨Selenium

时间:2013-06-25 13:36:33

标签: javascript python selenium

假设我有这个(假的)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编写测试,但我认为如果使用其他语言,我会找到一种方法来调整代码。

到目前为止我能管理的最好的事情是将结果写在页面的某个位置,然后使用计时器检查该位置。但这听起来好像可以做得更好。

1 个答案:

答案 0 :(得分:1)

你正走在正确的轨道上。 Adam Goucher将这种机制称为“JavaScript锁存器”,它正是您想要使用的那种构造。通常,您希望将它与WebDriverWait构造一起使用,该构造应该在大多数语言绑定中可用,包括Python。 WebDriverWait建立超时,但轮询所需的条件,一旦满足条件或达到超时就返回。在这种情况下,条件将是具有适当值的页面上的JavaScript变量。