#java #selenium
#java #селен
Вопрос:
Я хочу щелкнуть по веб-элементу и выполнить какое-то действие.Для этого элемент должен быть видимым. Я написал приведенный ниже код. Какая работа заключается в выполнении вертикальной прокрутки до веб-элемента, не видна. Но проблема в том, что код прокручивается за пределы элемента, и элемент поднимается. Я хочу прокрутить до веб-элемента.
Приведенный ниже код, который я написал для вертикальной прокрутки до веб-элемента, виден
WebElement element = driver.findElement(By.xpath("//div//span[@title='Brand']"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
Thread.sleep(500);
Ответ №1:
Хорошим подходом к решению этой проблемы было бы:
- Проверьте, виден ли элемент
protected boolean isElementPresent(WebElement element) {
try {
element.isDisplayed();
return true;
} catch (NoSuchElementException e) {
return false;
}
}
- Если элемент виден, выполните свое действие.
public void scroll() {
while (!isElementPresent(element)) {
doSomething();
sleep(1000);
}
}
- Определите свое действие
protected void doSomething() {
WebElement element = driver.findElement(By.xpath("//div//span[@title='Brand']"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
}