使用Python的Selenium - 无限期等待,直到出现输入框

时间:2015-04-01 05:37:04

标签: python selenium selenium-webdriver

我希望WebDriver实例无限期地监视页面,直到出现名为“move”的输入框。输入框出现后,我想用一些文本填充它,然后单击表单旁边的提交按钮。最简单的方法是什么?

我现在有这样的事情:

try:
    move = WebDriverWait(driver, 1000).until(
        EC.presence_of_element_located((By.NAME, "move"))
    )
finally:
    wd.quit()

表单旁边的按钮没有名称或id,所以我通过XPATH找到它。我想等到该表单出现后才点击按钮。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

  

无限期监控页面,直到出现输入框

您在示例中使用的Explicit wait需要定义超时值。要么为超时设置一个非常高的值,要么它不是一个选项。

或者,您可以使用while True循环,直到找到一个元素:

from selenium.common.exceptions import NoSuchElementException

while True:
    try:
        form = driver.find_element_by_name("move")
        break
    except NoSuchElementException:
        continue

button = form.find_element_by_xpath("following-sibling::button")
button.click()

我假设button元素是表单的following sibling