字符串在文本框中输入两次

时间:2016-02-18 04:50:10

标签: python python-2.7 selenium selenium-webdriver

当我运行硒时,我有一个奇怪的问题,大概有50%的时间发生。

运行脚本时会发生以下情况:

  • Firefox浏览器打开
  • “利兹布拉德福德”在文本框中输入
  • Firefox windows最大化
  • “Leeds Bradford”然后在同一文本框中的原始利兹布拉德福德旁边再次输入

这导致脚本无法继续并错误输出,因为它无法找到“Leeds Bradford”,因为文本框中显示“LeedsBradfordLeeds Bradford”。代码中没有任何内容表明要输入两次,所以我想知道为什么会这样?它是否可能是一个cookie问题,浏览器在实现我的脚本开始之前设法存储仅用于该文本框的现有表单数据?

如果是,那么有办法清除cookies吗?或者在输入“利兹布拉德福德”之前更好地清除文本框,以便它始终确保它在明文框中输入“利兹布拉德福德”?

代码如下:

# Search Flights
FROM = "Leeds Bradford"

driver = webdriver.Firefox()
driver.get("http://www.jet2.com")
driver.maximize_window()

wait = WebDriverWait(driver, 90)
actions = ActionChains(driver)

# wait for the page to load
wait.until(EC.presence_of_element_located((By.ID, "departure-airport-input")))

# fill out the form
return_flight = driver.find_element_by_id('return-flight-selector').click()

depart_from = driver.find_element_by_id("departure-airport-input").send_keys(FROM)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#ui-id-1 .ui-menu-item"))).click()

1 个答案:

答案 0 :(得分:3)

就像你说在输入值之前尝试清除输入字段:

depart_from = driver.find_element_by_id("departure-airport-input")
depart_from.clear()
depart_from.send_keys(FROM)