Python 发送U键功能触发错误消息:';消息:元素不可交互';
我使用selenium来填写这个html表单,但是当涉及到输入数据时,它会说“元素不可交互”。我可以单击元素,但是实际发送字符串会产生错误。我怎样才能解决这个问题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.
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)
解决了这个问题。您将需要从导入睡眠时间导入该功能
是的,谢谢!我觉得自己太傻了,我花了一段时间想弄明白。是的,谢谢!我觉得自己太笨了,我花了一段时间想弄明白这一点。