На этой странице много хороших ответов.
- Обычно я начинаю с maximize.window (), на самом деле я делаю это в
Фабрика драйверов или где вы инициализируете свой драйвер. Это делается по умолчанию - всегда.
- Обычно это элемент ожидания из-за некоторой задержки JavaScript.
Оба обсуждаются в различных деталях выше. Ответ, который я не видел, был ScrollToElement. Похоже, вы обрабатываете список элементов, а при обработке вы создаете больше элементов, флажки. Это может привести к тому, что элементы в вашем списке переместятся с видимой страницы. Иногда вы можете увидеть элемент невооруженным глазом, но просто не можете нажать на него. При обработке списков иногда приходится прерывать прокрутку.
- Установите точку останова и проверьте, находится ли используемый элемент на
край окна, верхний / нижний правый / левый. Иногда, когда это
Если вы не можете добраться до него через селен, но вы можете вручную нажать
твоя мышь.
Поскольку я столкнулся с этим, я создал PageScroll.java и поместил свои скрипты прокрутки туда. Вот несколько методов из этого класса:
public static void scrollToTop(WebDriver driver) {
((JavascriptExecutor) driver)
.executeScript("window.scrollTo(0,0)");
}
public static void scrollToBottom(WebDriver driver) {
((JavascriptExecutor) driver)
.executeScript("window.scrollTo(0, document.body.scrollHeight)");
}
public static void scrollToElementTop(WebDriver driver, WebElement element) {
((JavascriptExecutor) driver).executeScript(
"arguments[0].scrollIntoView(true);", element);
}
public static void scrollToElementBottom(WebDriver driver, WebElement element) {
((JavascriptExecutor) driver).executeScript(
"arguments[0].scrollIntoView(false);", element);
}
см. Прокрутить элемент в поле зрения с помощью Selenium
для дополнительных примеров