Closed megaman248 closed 4 years ago
What's wrong with using findElement(By.name("bla"))
?
What's wrong with using
findElement(By.name("bla"))
?
У меня сценарии составляются с использованием BDD и для обработки шага, например,
Когда пользователь нажимает кнопку "Вход"
, то по имени "Вход" ищу кнопку в элементе:
@Name("Вход") private Button enter;
Поэтому мне понадобился метод findElement(String name). Будет удобнее, чтобы этот метод был сразу в супер классе HtmlElement.
I need more context probably, but right now i can't see how "BDD-style use-cases" are related to the changes proposed.
Вам нужно показать код, показывающий, как шаг BDD мапируется с Java классом и вызывается метод findElement(String name)?
Вам нужно показать код, показывающий, как шаг BDD мапируется с Java классом и вызывается метод findElement(String name)?
Yep, i can't see why you need another findElement(String name)
when you already have findElement(By locator)
in HtmlElement class
Метод findElement(By locator) ищет веб элемент по локатору. В BDD шаге "Когда пользователь нажимает кнопку "Вход"" не передаётся локатор, но передаётся некое имя веб элемента, по которому нужно кликнуть. Это имя - Вход. Поэтому нужен метод findElement(String name), чтобы найти веб элемент по имени, заданному в аннотации @ru.yandex.qatools.htmlelements.annotations.Name("Вход"). Поскольку класс может наследовать по цепочке множество классов, то дополнительно ещё понадобился приватный метод findElement(Class<?> holder, String name) для рекурсивного прохода по всем супер классам, для просмотра в них аннотации @ru.yandex.qatools.htmlelements.annotations.Name
You can either change your BDD method to use existing findElement(By locator)
or extend HtmlElement class and add whatever methods you want. I don't see why it should be in framework.
Используя в BDD сценариях имена элементов, приходится их искать в иерархии классов наследников от HtmlElement. Хотелось бы, чтобы метод findElement(String name) был бы в самой библиотеке htmlelements.