Python Selenium可以识别输入字段,但不会发送密钥

Python Selenium可以识别输入字段,但不会发送密钥,python,selenium,rpa,Python,Selenium,Rpa,Selenium正在识别输入字段(使用xpath完成),但我无法向其发送任何键。没有错误,但是我想要写入密钥的文本没有显示在搜索框中。输入字段在几个div中,在一个iframe中,但是我很确定我已经处理好了。如何解决此问题 driver.implicitly_wait(20) search = driver.find_element_by_xpath("/html/body/main/div/div/div/div[1]/div/div/div/div/div/div[2]/div/input"

Selenium正在识别输入字段(使用xpath完成),但我无法向其发送任何键。没有错误,但是我想要写入密钥的文本没有显示在搜索框中。输入字段在几个div中,在一个iframe中,但是我很确定我已经处理好了。如何解决此问题

driver.implicitly_wait(20)
search = driver.find_element_by_xpath("/html/body/main/div/div/div/div[1]/div/div/div/div/div/div[2]/div/input")
search.send_keys("25%)")


输入字段没有ID,也没有类型,因此我不确定除了xpath之外如何找到它。

使用类来定位div元素:

search_div = driver.find_element_by_class_name("search-input")
search = search_div.find_element_by_class_name("text")
顺便说一句:


我不确定Java和Python之间的区别,但我建议您尝试使用JavaScriptExecutor输入键:

获取元素的Python代码:

search = driver.find_element_by_xpath("/html/body/main/div/div/div/div[1]/div/div/div/div/div/div[2]/div/input")
在Java中,基本上是这样传递元素的:

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].value='<<Add your input String here>>';", search);
JavascriptExecutor js=(JavascriptExecutor)驱动程序;
js.executeScript(“参数[0]。值=“”;”,搜索);

很多时候,当SendKeys不起作用时,它就起作用了

我尝试了这个方法,但出现了一个错误,说“元素不可交互”。我想我不能将键发送到div本身吗?我想我只能将键发送到输入字段,无论出于什么原因,输入字段都无法工作。这仍然是分区。。。你需要在那个divYea中输入,仍然得到相同的错误“element not interactiable”。这很奇怪,因为我的原始代码中没有输入错误,但文本没有显示在字段中抱歉,伙计,我以前读错了,你的div是“search input”类,在找到它之后,只需通过“text”类或“input”类型定位其中的元素。这很有意义。如何编写代码来定位div字段中的输入元素?我还会使用driver.find_element_by_class_name(“text”)?是否将驱动程序切换到iframe?是的,我切换了。我可以在iframe中选择其他内容,但由于某些原因,我无法在输入框中显示文本。请阅读原因。粘贴代码并正确格式化。您是否尝试过CSS选择器,如
div.search-input>input
?很抱歉,我这样做是因为html深入到许多分区中。我将编辑我的原始问题。你的意思是我应该尝试通过css选择器(“div.search-input”)查找元素吗。这是我第一次尝试硒,所以我有很多东西要学。我不知道你说的“>”是什么意思
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].value='<<Add your input String here>>';", search);