Не работает clear() WebDriver

401
02 апреля 2017, 02:44

Не работает метод 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?");
Answer 1

Чтобы ваш код работал, ищите и нажимайте кнопку поиска после ввода текста в поле:

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 достаточно ввести текст и убрать фокус с поля поиска, результаты должны автоматически отобразиться

Answer 2

Все работает правильно. Ошибка в вашем коде.

Когда выполняется оператор searchBox.sendKeys("Selenium WebDriver"), элемент btnk становится скрытым.

Вот код из инспектора:

Элемент <div class="jsb"....> имеет атрибут display: none;, входящий в него btnk - тоже.

При попытке нажатия на кнопку btnk возникает указанная в вопросе ошибка. Нельзя "нажимать" на то, что находится вне границ экрана, имеет атрибуты display: none; или visibility: hidden;.

READ ALSO
Java OpenGL MouseListener для смены цвета полигона

Java OpenGL MouseListener для смены цвета полигона

Реализовываю прямоугольный полигон на OpenGLНикак не могу сделать смену цвета этого полигона по клику мыши

293
Создание backend

Создание backend

Здравствуйте

249
Как создать custom seekbar?

Как создать custom seekbar?

Здравствуйте, интересует вопрос, как создать custom seekbar, перерыл много информации, но не нашел то, что нужно

277
Помогите с задачей! Точнее подскажите с чего начать!

Помогите с задачей! Точнее подскажите с чего начать!

Есть задача, в которой сказано, что нужно написать программу, которая находит в заданном телефонном номере подстроку максимальной длины,...

243