Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class BaseTest extends ConciseAPI {
- ...
- @Override
- public WebDriver getDriver() {
- return driver;
- }
- }
- public class GmailTest extends BaseTest{
- @Override
- public WebDriver getDriver() {
- return driver;
- }
- /*
- getDriver() - уже реализован в BaseTest
- и правильно - т к это общая логика для потомков класса BaseTest
- и ей место в классе BaseTest
- getDriver() в GmailTest уже не нужен
- */
- ***********************
- src/main/java/core/BaseTest.java
- /*
- предки тест-классов - даже универсальные
- должны располагаться в ветке проекта src \ test
- посмотри на описание хорошей сруктуры проекта еще раз (приведу ниже)
- */
- ****************************
- public static ExpectedCondition<WebElement> listNthElementHasText(final By elementsLocator, final int index, final String expectedText) {
- ...
- public String toString() {
- return String.format("element of list located ['%s'] should have (\'%s\') text, " +
- "while actual text is ('%s')",elementsLocator, expectedText, actualText);
- }
- /*
- про index - нету в сообщении
- что-то такое реализуй
- element by index [index] of list located [elementsLocator]
- should have text [expectedText]
- while actual text is [actualText]
- я тут квадратные скобки употребляю - чтоб показать - что вот сюда надо бы подставить значение
- стоит ли их употреблять в самом сообщении - еще вопрос..
- */
- *******************************************
- public class Emails extends BasePage {
- /*
- это я пропустила(
- если ты используешь пейдж как пейдж-объект
- то название класса - должно заканчиваться на Page
- если ты используешь пейдж как пейдж-модуль
- то - вот этого Page уже не надо
- в этой версии (и прошлой - тоже) - ты используешь пейджи-объекты
- потому -
- не Emails
- а EmailsPage
- касается всех пейджей
- */
- ***********************************
- public void send(String email, String subject) {
- ...
- $(By.id(":lo")).click();
- }
- /*
- помнится, я писала про это
- $(By.id(":lo")) - реализуй нагляднее
- $(byText("Отправить")).click(); - у тебя уже была такая версия
- */
- ****************************************
- http://joxi.ru/nAyqEx7HXvxQoA
- http://prnt.sc/bvuytd
- вот пример хорошей структуры проекта
- в src \ main
- core - универсальное, что можно переиспользовать в разных проектах
- pages - пейджи тоже можно переиспользовать для других тестов этого же приложения
- в src \ test
- testdata - тестовые данные (если такие есть и они вынесены в отдельный класс)
- testconfigs - предки тест-класса (так можно их изолировать от собственно тест-классов - чтоб легче было ориентироваться
- про пекеджи еще немного)
- если GroupID = com.somesite
- а проект todomvctest
- то пакет корневой должен быть com.somesite.todomvctest
- логика - чтобы "не смешивались имена сущностей"
- внутри одной компании - может быть несколько проектов)
- и у всех у них один com.somesite - базовый пекедж
- но для каждого проекта должен быть свой “базовый пекедж проекта"
- иначе все смешается)
- важно то, что когда этот проект выльется в отдельную библиотеку,
- то не будет конфликтов при его подключении
Advertisement
Add Comment
Please, Sign In to add comment