我有两个输入文字
<input id="info.route.waypointSuggest.input0" title="search input1" class="input" type="text" autocomplete="off">
<input id="info.route.waypointSuggest.input1" title="search input2" class="input" type="text" autocomplete="off">
在使用Python Selenium时,我访问了每个文本元素并给出了动态输入值
starting_point_path = '//*[@id="info.route.waypointSuggest.input0"]'
starting_point_element = web.find_elements_by_xpath(starting_point_path)
starting_point = input('first\n')
starting_point_element[0].send_keys(starting_point)
starting_point_element[0].submit()
time.sleep(3)
destination_path = '//*[@id="info.route.waypointSuggest.input1"]'
destination_element = web.find_elements_by_xpath(destination_path)
destination = input('second\n')
destination_element[0].send_keys(destination)
destination_element[0].submit()
time.sleep(3)
使用上面提供的代码,我可以更改第一个输入文本值,但不能更改第二个。这段代码曾经可以正常工作,但现在不再起作用,我不明白是什么原因造成了这种变化。相反,它现在正在返回
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
(Session info: chrome=80.0.3987.132)
通过打印出元素标题,我确认第一和第二输入元素都可以访问。到目前为止,我尝试了setAttribute,executeScript ...,但是它们都不起作用(或者我做错了) (也许,它可能会对Google chrome自动更新有所帮助?这只是我现在能想到的,)
答案 0 :(得分:0)
这就是我为解决此问题所做的工作, 这里的主要问题是(我认为)互联网连接不良/连接不足, 我添加了
WebDriverWait(web, 4).until(EC.visibility_of_element_located((By.XPATH, destination_path)))
仍然奇怪的是,尽管starting_point_element完全没有引起问题,但目标输入是唯一引起问题的输入。 我还尝试了对起点输入元素不做任何操作,并且仅对终点输入进行了操作,终点仍然引起问题。相反(仅在起点上工作,而在终点上没有工作),它工作正常。 但是,在找到更好的Internet连接并如上所述添加WebDriverWait代码之后,我能够解决问题,但这似乎只是一个临时解决方案。欢迎任何其他建议。