Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

PageFactory pattern @FindBy webelement


(Максим Малунов) #1

Проверка на существование как осуществляеться ?

  1. isDisplyed c try catch еще ?

Что представляет элемент до применения с ним методов (инициализации) ?
Не null а что ?


(Александр Таранков) #2

Интересно узнать для чего ты хочешь использовать эту информацию

По вопросам:

  1. нет, он просто проверяет есть ли элемент в структуре документа (DOM). Если используется AjaxElementLocator, то ещё дополнительно ждёт заданное время появления элемента в DOM-е
  2. Ты наверное имеешь ввиду не элемент, а поле класса. До инициализации (определения) оно представляет собой null. После - proxy-объект, реализующий интерфейс WebElement

(Владимир) #3

Такой вариант устроит?

 try {driver.findElement(By.className("name")) ;
       			System.out.println("элемент найден");}
       		catch (Exception e){};

(Максим Малунов) #4

День добрый

мне просто интересно .
@FindBy(xpath="…")
webelment button

  1. Проверка if(button!==null){
    заходит
    }
    button нигде не кликали .

В какой момент он еще null ?


(Александр Таранков) #5

Инициализация полей объекта проксями происходит внутри PageFactory.initЕlements(). До этого вызова значения полей будут null, после - прокси-объекты


(asolntsev) #6

Подозреваю, что вам не нужно проверять объект на null. Вероятно, вам нужно проверить, что он видим на экране. Значит, button.isDisplyed(). Или ещё лучше, вам нужно кликнуть на него и убедиться, что случится ожидаемое событие - например, на экране появится соответствующий текст.