Selenium:不要等待异步资源

Pai*_*Air 6 python selenium unit-testing selenium-webdriver

Selenium在继续执行新页面之前等待异步资源调用.

防爆.

<script src="https://apis.google.com/js/platform.js" async defer></script>
Run Code Online (Sandbox Code Playgroud)

在具有许多外部api的网站上(例如来自G +,Facebook和Twitter的Google Analytics和共享按钮).Selenium花费更多时间等待异步调用,而不是运行测试.

反正是否有禁用此行为,以便selenium不等待异步外部api调用?

ale*_*cxe 5

您所看到的是正在执行的页面加载超时。您可以对其进行调整并处理超时异常:

try:
    driver.set_page_load_timeout(5)  # in seconds
except TimeoutException:
    pass

# continue with testing
Run Code Online (Sandbox Code Playgroud)

除此以外,您还可以添加一个“ 显式等待”以等待某个所需的“操作”元素出现,以便一旦该元素出现就可以立即进行测试。


您也可以通过阻止对与您的测试无关的某些域的请求进行优化,从而不会损害页面渲染,也不会影响您的测试。例如,如果您要阻止Google Analytics(分析)请求,请执行以下操作:

您还可以禁用图片,CSS或Flash(如果您的情况适用):