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

时间:2012-06-01 15:39:42

标签: python selenium

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

从Selenium 2开始,似乎不再存在stock wait_for()方法。使用Selenium和Python 2“等待15秒或直到元素可点击”的最佳做法是什么?

2 个答案:

答案 0 :(得分:2)

您正在寻找的是明确等待。 Selenium文档进一步解释了explicit waiting的工作原理。

您可以在此处找到不同类型的expected conditions。您最感兴趣的条件是名为'visibility_of'的条件。

答案 1 :(得分:1)

这是红宝石,我相信它也可以在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")}