我有一个问题,大概有50%的时间我运行我的python selenium脚本,只在第一个文本框中,它已经在输入中显示了文本(我相信因为cookie)。这意味着当我使用.send_keys()
输入我的文本时,文本变得无效,因为我有两个文本,因此无法找到目的地。
假设发生的是,在输入文本后,它的项目会出现在下面的下拉列表中,然后脚本会选择该列表。但如果文本不正确,那么显然在列表中没有要选择的项目。
我想我尝试使用.clear()
在输入文本之前清除文本框,但下拉列表不会出现(这很奇怪)。
所以我的问题是,有没有办法确保每次打开浏览器并运行脚本时文本框始终为空?
以下是检索文本字段,清除文本字段然后键入文本(没有工作的解决方法)的小样本。
depart_from = driver.find_element_by_id("departure-airport-input")
depart_from.clear()
depart_from.send_keys("Leeds Bradford")
答案 0 :(得分:0)
预先选择输入中的所有文字,然后输入您的文字:
from selenium.webdriver.common.keys import Keys
depart_from = driver.find_element_by_id("departure-airport-input")
depart_from.send_keys(Keys.CONTROL, 'a') # Keys.COMMAND on Mac
depart_from.send_keys("Leeds Bradford")
如果要在发送密钥之前检查输入的文本,请使用get_attribute()
:
initial_value = depart_from.get_attribute("value")
if initial_value == FROM:
# do smth
答案 1 :(得分:0)
我在Java中知道它就是这样......可能它会给你一些线索吗?
driver.manage().deleteAllCookies();