Javascript可以回调/发信号Selenium吗?

时间:2013-11-18 21:50:24

标签: javascript jquery python ajax selenium

假设我们在网页上使用Selenium,该网页实现了一个AJAX请求,该请求动态填充特定元素#content中的内容。

#content总是包含5个子节点,其中没有子节点包含类,ID或任何其他属性或唯一标识符。在随机时间间隔(1ms到10,000ms之间),AJAX请求将触发,重新填充五个元素中的每个元素中的文本,而不实际删除元素本身。

如何设置一个回调或信号,它可以与Web浏览器之外的应用程序进行通信,AJAX请求已被触发,并且已完成......此时我们现在可以查找新的值?

我已在http://joshburns.me/js-test/

设置了示例网站方案

1 个答案:

答案 0 :(得分:0)

您可以在python中定义一个等待循环,主动检查javascript是否空闲。然后运作:

您等待Javascript完成的功能(一旦被调用它将仅在javascript未在文档上运行时返回):

    def waitForJavaScript(browser):
      while True:
        if(browser.execute_script('return document.readyState') == 'complete')
          return