Для чего: хочу иметь дополнительные методы у веб элемента, которые нужны только в моем проекте. На пример клик не стандартный и тд.
Что пробовал: первое что пришло в голову унаследоваться от RemoteWebElement
public class MyElement extends RemoteWebElement {
}
но код MyElement element = (MyElement) driver.findElement(By.cssSelector(“body”)); ругается
…ClassCastException: …RemoteWebElement cannot be cast to …MyElement
1 лайк
driver.findElement(By.cssSelector(“body”)) повертає обєкт RemoteWebElement, тому і маєте ексепшин при приведенні до MyElement.
Зазвичай свої елементи реалізовуються приблизно так:
public class MyElement implements WebElement {
private final WebElement element;
public MyElement(WebElement element) {
this.element = element;
}
//additional methods ...
}
і тоді в коді
MyElement element = new MyElement(driver.findElement(By.cssSelector("body")));
к сожаленью этот вариант не подходит, нужно через PageFactory работать, то бишь такой код должен срабатывать
@FindBy(что то)
private MyElement element;
demaW
(Dema W)
#4
Тогда пробуйте так, например:
asolntsev
(asolntsev)
#6
4 лайка