Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Configuration {
- public static int timeout = 10;
- }
- /*
- у тебя уже есть класс с настройками
- это ок
- */
- ************************
- public static <V> V assertThat(WebDriver driver, ExpectedCondition<V> condition, int timeout) {
- return new WebDriverWait(driver, timeout).until(condition);
- }
- /*
- в этот метод добавил параметр timeout - тоже ок
- только зачем тебе первый параметр WebDriver driver?
- у тебя же в этом классе - есть механизм получения вебдрайвера - абстрактный метод getWebDriver()
- убери параметр WebDriver driver
- и в коде
- new WebDriverWait(getWebDriver(), timeout)...
- в это же и весь смысл с абстрактным классом
- мы уже здесь, в абстрактром предке говорим
- что у нас в потомках - будет реализован метод getWebDriver()
- с такой-то сигнатурой
- и на это рассчитывая - мы в коде можем использовать этот абстрактый метод getWebDriver()
- а затем - в каждом из потомков этого класса
- мы реализуем свою версию getWebDriver()
- */
- ************************
- public <V> V assertThat( ExpectedCondition<V> condition) {
- return (new WebDriverWait(getWebDriver(), 10)).until(condition);
- }
- /*
- хм...
- а тут - нормально применяешь getWebDriver()
- не понятно )
- поправь все методы в классе ConciseAPI - насчет параметра WebDriver driver и использования getWebDriver()
- больше про это не пишу
- вспоминаем
- у нас есть класс Configuration
- и там мы задали таймаут timeout
- почему же здесь - используем 10, а не Configuration.timeout?
- просмотри прошлое ревью про это
- если не понятно - спроси
- еще момент
- если уже есть метод assertThat(ExpectedCondition<V> condition, int timeout)
- то - внутри этого метода - достаточно вызвать assertThat(condition, Configuration.timeout)
- так - получишь более DRY код
- про DRY - почитай в faq нашем, да и вообще погугли
- */
- **************************************
- public class GMailPages extends BasePage {
- /*
- это не пейджИ, а пейдж (один)
- GMailPage - будет ок
- пекедж для пейджей - действительно - называют pages
- т к даже если сейчас у тебя один пейдж
- не факт - что потом их не прибавится
- */
- *********************
- //public static List<WebElement> mails = driver.findElements(By.cssSelector("[role='main'] .zA"));
- /*
- верно закомментарил...
- такой номер у нас не пройдет теперь
- про это - потом
- когда проверки assertMail и assertMails будем реализовывать
- */
- **************************************
- public void send(String email, String subject) {
- ...
- $(driver, By.id(":lo")).click();
- /*
- посмотри у себя же в селенидовской версии - как это реализовывал
- можешь и тут поступить аналогично?
- */
- ***********************************************
- public void search(String text) {
- $(driver, By.name("q")).sendKeys("\"" + text + "\"" + Keys.ENTER);
- }
- /*
- уверен - что нужно кавычки в строку поиска добавлять?
- */
- ***************************************
- /*
- public static void assertMail(int index,String mailText) {
- assertTrue(driver.findElements(By.cssSelector("[role='main'] .zA")).get(index).contains(mailText));
- }
- */
- /*
- давай пока все кроме этих проверок приведем в порядок
- пока оставь это закомменченным
- */
- ***************************************
- public class GMailTest extends TestData {
- /*
- строки 134-137 прошлого ревью
- BaseTest - был хорошо реализован
- то, что он наследовался от ConciseAPI - тоже давало нам ряд бонусов
- все методы ConciseAPI - были доступны для вызова в тест-классе
- что хорошо
- теперь - BaseTest нету вообще, а тест-класс наследуется от класса с тестовыми данными
- это - тест-класс наследуется от класса с тестовыми данными - очень плохая идея
- если ты про предка и потомка не можешь сказать
- потомок - это тоже предок
- то - ты наверняка наследование применил не там, где это нужно
- тест-класс - это тоже тестовые данные
- хорошо звучит?
- )
- тебе не нужно наследоваться от TestData
- в тест-методе - просто - используй TestData
- а вот BaseTest и наследование тест-класса от него - верни
- */
- *********************************
- private WebDriver driver = new FirefoxDriver();
- ...
- @After
- public void closeDriver() {
- driver.quit();
- }
- /*
- это у тебя в BaseTest уйдет
- кстати, ты не прислушался к рекомендациям - строки 113-127
- интересно, почему )
- да, я писала - что можно и так)
- и что все зависит от поставленной задачи
- напиши мне в слеке - почему ты выбрал в данном случае стратегию -
- создавать вебдрайвер перед запуском каждого тест-метода?
- */
- *****************************
- @Before
- public void setUp() {
- Configuration.timeout = 15;
- }
- /*
- да, ты установил таймаут
- это ты молодец)
- только пока Configuration.timeout не будет использоваться в assertThat( ExpectedCondition<V> condition)
- он ни на что влиять не будет
- если этот момент не понятен - давай обсудим
- */
- *************************
- GMailPages pages=new GMailPages(driver);
- /*
- создаем пейдж, а не пейджИ
- */
- *********************************
- /*
- вот это отлаживай
- и затем - продолжай по прошлому ревью идти
- начиная со строки 201
- если текст сложный - давай планировать поговорить
- к разговору - определись с перечнем вопросов
- и с ответами на мои вопросы)
- выше был первый вопрос
- и еще один - какую версию ты намерен реализовывать - с FindBy или нет
- */
Advertisement
Add Comment
Please, Sign In to add comment