【问题标题】:String is entered twice in a text box在文本框中输入两次字符串
【发布时间】:2016-02-18 04:50:10
【问题描述】:

当我运行 selenium 时,大约 50% 的时间会发生一个奇怪的问题。

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

  • Firefox 浏览器打开
  • 在文本框中输入“Leeds Bradford”
  • Firefox 窗口最大化
  • 然后在同一文本框中的原始 Leeds Bradford 旁边再次输入“Leeds Bradford”

这会导致脚本无法继续并出错,因为它无法找到“Leeds Bradford”,因为文本框显示“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()

【问题讨论】:

    标签: python python-2.7 selenium selenium-webdriver


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      相关资源
      最近更新 更多