假设我们在网页上使用Selenium,该网页实现了一个AJAX请求,该请求动态填充特定元素#content
中的内容。
#content
总是包含5个子节点,其中没有子节点包含类,ID或任何其他属性或唯一标识符。在随机时间间隔(1ms到10,000ms之间),AJAX请求将触发,重新填充五个元素中的每个元素中的文本,而不实际删除元素本身。
如何设置一个回调或信号,它可以与Web浏览器之外的应用程序进行通信,AJAX请求已被触发,并且已完成......此时我们现在可以查找新的值?
设置了示例网站方案答案 0 :(得分:0)
您可以在python中定义一个等待循环,主动检查javascript是否空闲。然后运作:
您等待Javascript完成的功能(一旦被调用它将仅在javascript未在文档上运行时返回):
def waitForJavaScript(browser):
while True:
if(browser.execute_script('return document.readyState') == 'complete')
return