为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过 Selenium Webdriver 将文本发送到搜索字段?

如何通过 Selenium Webdriver 将文本发送到搜索字段?

慕后森 2021-05-31 22:02:31
任务:在搜索框中搜索 FAA:我试过这个:-webdriver.select_tabs(search.btnSearch);Thread.sleep(3000);WebElement searchbox = driver.findElement(By.id("search-text"));Actions builder = new Actions(driver);Actions seriesOfActions = builder.moveToElement(searchbox).click().sendKeys(searchbox, "FAA");seriesOfActions.perform();WebDriverWait wait = new WebDriverWait(driver, 30);WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"search-text\"]")));element.sendKeys("FAA");element.sendKeys(Keys.ENTER);webdriver.enter_key(search.txtSearch, Keys.ENTER);webdriver.enter_Text(search.txtSearch, "FAA");webdriver.enter_key(search.txtSearch, Keys.ENTER);得到这个错误:-org.openqa.selenium.ElementNotVisibleException: element not visible
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

使用以下 xpath :

(//input[@id='search-text'])[2]

并使用类似:

driver.findElement(By.xpath("(//input[@id='search-text'])[2]")).sendKeys("FAA");

当您在控制台中通过此 id 找到它时,它给出了两个元素,第一个不可见,但第二个是实际的输入框。


查看完整回答
反对 回复 2021-06-02
?
POPMUISE

TA贡献1765条经验 获得超5个赞

根据定义,Selenium 像真实用户一样与浏览器交互。真正的用户将无法输入隐藏的文本框/编辑框。您要么需要更改输入的可见性,重新评估为什么需要与隐藏元素交互,要么使用 javascript 执行程序来设置输入的值,如下所示:

driver.executeScript("arguments[0].value='" + textToEnter + "'", element);


查看完整回答
反对 回复 2021-06-02
  • 3 回答
  • 0 关注
  • 192 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信