Python Selenium 2 API 并等待 DOM 准备就绪/元素可见



我想等到DOM稳定并且页面被构建,直到我尝试执行Selenium WebDriver click()方法。

自硒 2 以来,似乎不再存在股票 wait_for() 方法。Selenium 和 Python 2 的"等待 15 秒或直到元素可单击"样式行为的最佳实践是什么?

您要查找的是显式等待。Selenium文档进一步解释了显式等待的工作原理。

您可以在此处找到不同类型的预期条件。您可能最感兴趣的条件是称为"visibility_of"的条件。

这是在 ruby 中,我相信它也可以用 Python 完成

@wait = Selenium::WebDriver::Wait.new(:timeout => 30)
#You can define as many as you want with various times
@wait_less = Selenium::WebDriver::Wait.new(:timeout => 15)
#and then
@wait.until { @driver.find_element(:id, "Submit") }
@driver.find_element(:id, "Submit").click

注意 - 你可以等待任何东西。 其他例子

@wait.until {@driver.window_handles.size > 1}

@wait_less.until {@driver.find_element(:tag_name => "body").text.include?("Some text")}

最新更新