Python 发送U键功能触发错误消息:';消息:元素不可交互';

Python 发送U键功能触发错误消息:';消息:元素不可交互';,python,selenium,Python,Selenium,我使用selenium来填写这个html表单,但是当涉及到输入数据时,它会说“元素不可交互”。我可以单击元素,但是实际发送字符串会产生错误。我怎样才能解决这个问题 driver.get('https://www.masmovil.es/cobertura-fibra-optica-campos/') prov = Select(driver.find_element_by_xpath('//*[@id="province"]')) prov.select_by_index(32) driver.

我使用selenium来填写这个html表单,但是当涉及到输入数据时,它会说“元素不可交互”。我可以单击元素,但是实际发送字符串会产生错误。我怎样才能解决这个问题

driver.get('https://www.masmovil.es/cobertura-fibra-optica-campos/')
prov = Select(driver.find_element_by_xpath('//*[@id="province"]'))
prov.select_by_index(32)
driver.find_element_by_xpath('//*[@id="town"]').send_keys('1')

谢谢大家!

在您访问的页面中,有两个元素是通过xpath('/*[@id=“town”]')通过选择器
返回的,一个是“mm ui自动完成”,另一个是“输入”

“mm ui autocomplete”对于真正的用户来说既不可见也不可交互,这可能是引发异常的原因,selenium总是在选择器返回多个元素时进行第一次匹配,因此,假设您想在“Localidad”字段中键入某个内容,它选择了错误的元素

尝试通过xpath('//input[@id=“town”]')
将选择器更改为
,然后查看它是否有效


希望对您有所帮助。

在您访问的页面中,有两个元素是通过xpath('/*[@id=“town”]')
通过选择器
返回的,一个是“mm ui自动完成”,另一个是“输入”

“mm ui autocomplete”对于真正的用户来说既不可见也不可交互,这可能是引发异常的原因,selenium总是在选择器返回多个元素时进行第一次匹配,因此,假设您想在“Localidad”字段中键入某个内容,它选择了错误的元素

尝试通过xpath('//input[@id=“town”]')
将选择器更改为
,然后查看它是否有效


希望有帮助。

您可以尝试使用此css选择器:

input[id='town']
代码

driver.find_element_by_css_selector("input[id='town']").send_keys('1')  
您使用的xpath
(//*[@id=“town”])
有两个条目:

一个带有
mmui自动完成
标记,另一个带有
输入
标记

总是优先选择css选择器而不是xpath。它比xpath更稳定

如果您不想使用css选择器,那么您可以像这样使用xpath:

//input[@id='town']  
代码:

driver.find_element_by_xpath("//input[@id='town']").send_keys('1')

您可以尝试使用此css选择器:

input[id='town']
代码

driver.find_element_by_css_selector("input[id='town']").send_keys('1')  
您使用的xpath
(//*[@id=“town”])
有两个条目:

一个带有
mmui自动完成
标记,另一个带有
输入
标记

总是优先选择css选择器而不是xpath。它比xpath更稳定

如果您不想使用css选择器,那么您可以像这样使用xpath:

//input[@id='town']  
代码:

driver.find_element_by_xpath("//input[@id='town']").send_keys('1')

在我的例子中,
find_元素
恰好在前端完成加载之前不工作


我通过在
find\u元素\u by\uxpath
之前添加
sleep(2)
解决了这个问题。您需要通过
从导入睡眠时间导入函数

在我的情况下,在前端完成加载之前,
查找元素
不起作用


我通过在
find\u元素\u by\uxpath
之前添加
sleep(2)
解决了这个问题。您将需要从导入睡眠时间
导入该功能

是的,谢谢!我觉得自己太傻了,我花了一段时间想弄明白。是的,谢谢!我觉得自己太笨了,我花了一段时间想弄明白这一点。