如何检测浏览器是否正在运行任何javascript(不更改页面上的js)

时间:2013-06-25 12:54:54

标签: javascript browser selenium

我正在为selenium实现自定义php客户端,我在实现waitForPageToLoad()函数方面遇到了问题:

问题是只检查document.readyState是不够的 - 页面上可能会运行一些JS脚本(例如,点击按钮后的一些动画),这会强制我的waitForPageToLoad()功能继续等待,但document.readyState在这种情况下返回complete状态。

另一个问题是我无法使用回调,因为我不知道js会在页面上运行什么。尽管如此,我可以在页面上插入一些js,但我必须确保它不会影响页面的正常行为。

有人可以建议一个可能的解决方案吗? 目前我正在使用最新的FF浏览器。

感谢。

1 个答案:

答案 0 :(得分:0)

无法检查JavaScript当前是否正在运行。

您可以等待元素出现。

对于Python,它可以这样工作:

from selenium.webdriver.support import expected_conditions as EC  # noqa

driver = webdriver.Chrome(...)

el = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//a"))  # change to your needs
)

另请参阅:http://selenium-python.readthedocs.io/waits.html