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