julia_v_iluhina

Untitled

Oct 21st, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.03 KB | None | 0 0
  1. public  class ConciseAPI {
  2.  
  3.     ...
  4.  
  5.     public static WebDriver getDriver(){
  6.         return ConciseAPI.driver;
  7.     }
  8.     /*
  9.         у нас уже есть способ получить вебдрайвер - вызвать getDriver()
  10.     */
  11.  
  12.    ...
  13.     public static void open(String url){
  14.         getDriver().get(url);
  15.     }
  16.     /*
  17.         и вот тут грамотно getDriver() использован
  18.     */
  19.  
  20.     public static WebElement $(WebDriver driver, String cssSelector){
  21.     public static WebElement $(WebDriver driver, By elementLocator){
  22.     public static <V> V assertThat(WebDriver driver, ExpectedCondition<V> condition) {
  23.     ...
  24.     /*
  25.         а для чего в других методах - параметр WebDriver driver?
  26.         мы же уже спокойно можем вызвать getDriver() - в любом из методов
  27.         и в этом же классе - тоже
  28.  
  29.         пробегись по всем методам
  30.         не нужно нам дополнительного параметра для вебдрайвера)
  31.  
  32.         только сеттер и будет получать вебдрайвер
  33.         а в остальных случаях - когда надо получить вебдрайвер  - будет использоваться геттер
  34.     */
  35. **********************************************
  36.     public class MailsPage extends BasePage {
  37.  
  38.         public By mails = byCss("[role='main'] .zA");
  39.         /*
  40.             грамотно перешел на использование локаторов)
  41.         */
  42.     ************************************
  43.         public MailsPage(WebDriver driver){
  44.             super(driver);
  45.         }
  46.  
  47.         public void send(String recipient, String subject){
  48.             $(driver, byText("COMPOSE")).click();
  49.         /*
  50.             уже обсуждали с тобой выше
  51.             да и в слеке тоже)
  52.             нам не надо отсюда передавать driver
  53.  
  54.             т к метод $ - уже оперирует драйвером из ConciseAPI
  55.  
  56.             значит - нам тут не нужен driver из предка пейджа
  57.         */
  58.  *****************************
  59.  public class BasePage {
  60.      public WebDriver driver;
  61.  
  62.      public BasePage(WebDriver driver){
  63.          this.driver = driver;
  64.          PageFactory.initElements(driver, this);
  65.      }
  66.  }
  67. /*
  68.     driver - уже не нужен
  69.     да и PageFactory.initElements(driver, this) - нужно лишь в случае использования
  70.     аннотированных FindBy переменных
  71.  
  72.     а мы от них избавились
  73.  
  74.     значит - предок пейджа - нам не нужен тоже
  75.  
  76.     подумай - что теперь нас сдерживает,
  77.     чтобы вернуться к использованию пейджей-модулей?
  78.  
  79.     кода станет еще меньше)
  80. */
Advertisement
Add Comment
Please, Sign In to add comment