Не могу понять как создать драйвер через selenide
В селениуме это выглядит вот так -
public void init(final WebDriver driver) {
PageFactory.initElements(driver, this);
}
Но я не использую WebDriver
Не могу понять как создать драйвер через selenide
В селениуме это выглядит вот так -
public void init(final WebDriver driver) {
PageFactory.initElements(driver, this);
}
Но я не использую WebDriver
Не советую пихать PageFactory и @FindBy в selenide.
Пробуйте так
public WebDriver driver;
@BeforeClass
public void setUp() {
System.setProperty("webdriver.chrome.driver", "src/main/resources/drivers/windows/chromedriver.exe");
Configuration.browser = "chrome";
}
Место @FindBy используйте
SelenideElement btnSignIn = $(By.xpath("//*[@class='top-bar']//*[text()='Sign up']")),
Тем Селенид и хорош, что многие вещи делает ненужными. В частности, вам больше не нужно вызывать PageFactory. Вот же есть пример на гитхабе:
Я не собираюсь его туда “пихать” если это делать необязательно.
Мой класс с тестами выглядит так
Я хочу что бы объекты этих классов существовали только в момент вызова их методов, и я думал FindBy поможет мне в этом.
К сожалению вариант…
SelenideElement btnSignIn = $(By.xpath("//[@class=‘top-bar’]//[text()=‘Sign up’]")),
…не подходит, так как при создании объекта страницы в классе с тестами, селенайд этой строчкой пытается найти объект что-бы присвоить переменной, но объекта может и не существовать на текущей веб-странице
Вы уверены? Попробуйте, все же, такой подход
Насколько я знаю, код выше не инициализирует элемент, а только запоминает локатор
Инициализация будет при первом взаимодействии с элементом
Например,
SelenideElement btnSignIn = $(By.xpath("// [@class=‘top-bar’]// [text()=‘Sign up’]")); //просто знаем, как искать элемент
btnSignIn.click(); //вот только здесь будет искать элемент и кликать
На сколько я помню, Selenide хоть при объявлении через $ хоть через @FindBy садит ленивую проксю, а при обращении к объекту ищет его уже.
Всё таки помогло! Спасибо всем