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

任务:在搜索框中搜索 FAA:

http://img.mukewang.com/60b735cf0001f79617980908.jpg

我试过这个:-


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


慕后森
浏览 193回答 3
3回答

小唯快跑啊

使用以下 xpath :(//input[@id='search-text'])[2]并使用类似:driver.findElement(By.xpath("(//input[@id='search-text'])[2]")).sendKeys("FAA");当您在控制台中通过此 id 找到它时,它给出了两个元素,第一个不可见,但第二个是实际的输入框。

POPMUISE

根据定义,Selenium 像真实用户一样与浏览器交互。真正的用户将无法输入隐藏的文本框/编辑框。您要么需要更改输入的可见性,重新评估为什么需要与隐藏元素交互,要么使用 javascript 执行程序来设置输入的值,如下所示:driver.executeScript("arguments[0].value='" + textToEnter + "'", element);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java