Не работает метод clear() из Selenium WebDriver в поисковике (если я правильно понял, пишет - Caused by: org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with).
Запустил для проверки работоспособности локально страничку с фреймами и полем ввода - метод отрабатывает нормально. В чем может быть проблема? Метод работает только с простыми формами?
package com.packt.webdriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class WebDriverNavigate {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.navigate().to("https://www.google.by");
WebElement searchBox = driver.findElement(By.name("q"));
WebElement button = driver.findElement(By.name("btnK"));
searchBox.sendKeys("Selenium WebDriver");
button.click();
searchBox.clear(); // метод очистки не работает
searchBox.sendKeys("WTF?");
Чтобы ваш код работал, ищите и нажимайте кнопку поиска после ввода текста в поле:
package com.packt.webdriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class WebDriverNavigate {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.navigate().to("https://www.google.by");
WebElement searchBox = driver.findElement(By.name("q"));
searchBox.sendKeys("Selenium WebDriver");
WebElement button = driver.findElement(By.name("btnG"));
button.click();
searchBox.clear();
searchBox.sendKeys("WTF?");
А вообще для поиска в google достаточно ввести текст и убрать фокус с поля поиска, результаты должны автоматически отобразиться
Все работает правильно. Ошибка в вашем коде.
Когда выполняется оператор searchBox.sendKeys("Selenium WebDriver"), элемент btnk становится скрытым.
Вот код из инспектора:
Элемент <div class="jsb"....> имеет атрибут display: none;, входящий в него btnk - тоже.
При попытке нажатия на кнопку btnk возникает указанная в вопросе ошибка. Нельзя "нажимать" на то, что находится вне границ экрана, имеет атрибуты display: none; или visibility: hidden;.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей