运行硒时,大约有50%的时间会发生一个奇怪的问题。
运行脚本时,往往会发生以下情况:
Firefox浏览器打开
在文本框中输入“利兹布拉德福德”
Firefox窗口最大化
然后在同一文本框中在原始的利兹布拉德福德旁边再次输入“利兹布拉德福德”
这将导致脚本无法继续执行并出错,因为它无法找到“利兹布拉德福德”,因为文本框显示为“ LeedsBradfordLeeds Bradford”。代码中没有任何内容可以输入两次,所以我想知道为什么会这样?在实现我的脚本开始之前,浏览器设法仅针对该文本框存储现有表单数据,这可能是cookie的问题?
如果是这样,那么有办法清除Cookie吗?还是最好在输入“ Leeds Bradford”之前清除文本框,以确保始终在明文框中输入“ Leeds Bradford”?
代码如下:
# 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()
最佳答案
就像您说的那样,尝试在输入值之前清除输入字段:
depart_from = driver.find_element_by_id("departure-airport-input")
depart_from.clear()
depart_from.send_keys(FROM)