我希望WebDriver实例无限期地监视页面,直到出现名为“move”的输入框。输入框出现后,我想用一些文本填充它,然后单击表单旁边的提交按钮。最简单的方法是什么?
我现在有这样的事情:
try:
move = WebDriverWait(driver, 1000).until(
EC.presence_of_element_located((By.NAME, "move"))
)
finally:
wd.quit()
表单旁边的按钮没有名称或id,所以我通过XPATH找到它。我想等到该表单出现后才点击按钮。
我该怎么做?
答案 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。