2

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

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

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

任何人都可以提出一个可能的解决方案吗?目前我正在使用最新的 FF 浏览器。

谢谢。

4

1 回答 1

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

于 2017-08-18T09:41:33.547 回答