Мы используем PageFactory в нашем проекте. Когда мы получаем «NoSuchElementException», я могу видеть, что даже если мы используем локаторы, такие как id, имя класса, имя, тэг внутри, он, похоже, использует «css selector».
ID:
@FindBy(id="usernames")
public WebElement username;
Сообщение об ошибке:
no such element: Unable to locate element: {"method":"css selector","selector":"#usernames"}
ИМЯ КЛАССА:
@FindBy(className="usernames")
public WebElement username;
Сообщение об ошибке:
no such element: Unable to locate element: {"method":"css selector","selector":".usernames"}
ИМЯ
@FindBy(name="usernames")
public WebElement username;
Сообщение об ошибке:
no such element: Unable to locate element: {"method":"css selector","selector":"*[name='usernames']"}
TAGNAME
@FindBy(tagName="usernames")
public WebElement username;
Сообщение об ошибке:
no such element: Unable to locate element: {"method":"css selector","selector":"usernames"}
Bur, в случае локаторов, таких как linktext, xpath, используется прямой метод.
no such element: Unable to locate element: {"method":"link text","selector":"usernames"}
no such element: Unable to locate element: {"method":"partial link text","selector":"usernames"}
no such element: Unable to locate element: {"method":"xpath","selector":"usernames"}
Мой вопрос:
Если локаторы, такие как текст ссылки, частичный текст ссылки, xpath могут использовать свой прямой метод, почему бы не идентификатор, имя, имя класса, тэг?