Поскольку вы тоже пометили вопрос как Google-Chrome - я полагаю, что это в основном происходит с ChromeDriver. У меня были такие же проблемы с одним из моих предыдущих проектов (Asp .Net MVC). Я обнаружил, что когда некоторые элементы не видны для этого драйвера, если они не находятся в screen_visible_area. Пожалуйста, обратите внимание, что они загружаются (HTML, CSS3, JS и т. Д.) Правильно.
Итак, после долгого чтения и тестирования я обнаружил, что мой обходной путь - это просто прокрутить до WebElement, поэтому он находится в видимой части экран. На самом деле эта проблема касалась не всех элементов, и лучшего решения я не нашел.
unknown error: Element is not clickable at point (..., ...)
Не является описательной ошибкой в данном случае, потому что, как и вы, я тоже думал, что это связано с селектором.
Чтобы быть полным ответом - у меня были те же проблемы с IEDriver. Моя реализация заключалась в использовании опций прокрутки вниз / вверх в браузере и просто «отправить экран» туда, где находится проблемный элемент.
Простой код JSExecutor, который вы можете использовать:
WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(110,350)", "");
or
jse.executeScript("scroll(0, 250);");
or
driver.executeScript("window.scrollBy(110,350)", "");
Другие тематические полезные ресурсы находятся здесь.
Обновить
Что касается .sendKeys()
, я также использовал специальные возможности браузера. Все, что вам нужно сделать, это просто подсчитать, сколько щелчков по TAB нужно вашему тесту, чтобы перейти к целевому web_element. Тогда просто позвоните .click()
.
Попробуйте этот простой код:
element.sendKeys(Keys.TAB);
or
element.sendKeys("\t")
or
Actions builder = new Actions(driver);
builder.keyDown(Keys.TAB).perform()
person
ekostadinov
schedule
19.09.2014