julia_v_iluhina

Untitled

Sep 5th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.23 KB | None | 0 0
  1.     public <V> V assertThat(ExpectedCondition<V> condition) {
  2.         return assertThat(condition, timeout);
  3.         // (new WebDriverWait(getWebDriver(), Configuration.timeout)).until(condition);
  4.     }
  5. /*
  6.     Тут лучше не сокращать - полностью пиши Configuration.timeout
  7.     цель - почетче дать понять - что это такое
  8. */
  9. ****************************
  10. public By byExactAttributeText
  11. /*
  12.     будет правильнее
  13.     public By byAttributeExactText - мы же про ExactText атрибута говорим)
  14. */
  15. *****************************
  16.     public WebElement $(By locator) {
  17.         return this.assertThat(visibilityOfElementLocated(locator));
  18.     }
  19. /*
  20.     тут вполне и без this можно обойтись
  21.         вот неплохие линки - про использование this
  22.             https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html
  23.             http://stackoverflow.com/questions/2411270/when-should-i-use-this-in-a-class
  24. */
  25. ********************************
  26. public abstract class ConciseAPI {
  27. /*
  28.     убери лишние комментарии
  29.     реформатируй код
  30.     разберись с пропусками строк - чтоб они помогали читать код и использовались логично
  31.  
  32.     упорядочь методы
  33.     от общего к частному
  34.     рядом - похожее и связанное
  35.  
  36.     касается и других классов
  37. */
  38. **************************************
  39.  
  40. public void assertMail(int index, String text) {
  41. public void assertMails(String... mailTexts) {
  42. /*
  43.     В обоих методах - используй одинаково
  44.     mailText & mailTexts
  45.     vs
  46.     text & texts
  47.  
  48.     одно понятие - один термин
  49.  
  50. */
  51. *****************************************
  52.  public static ExpectedCondition<List<WebElement>> texts(final List<WebElement> elements, final String... expectedTexts) {
  53.  public static ExpectedCondition<Boolean> sizeOf(final By elementsLocator, final int expectedSize) {
  54.  public static ExpectedCondition<Boolean> minimumSizeOf(final By elementsLocator, final int expectedSize) {
  55.  /*
  56.     для всех кондишенов используй elementExceptionsCatcher
  57.  
  58.     такого рода проблемы могут возникнуть в любом из них
  59.  */
  60. ******************************************************
  61. return format("\n listNthElementHasText should contain: %s\n while actual listNthElementHasText: %s\n list: %s\n",
  62.                          expectedTexts, elementTexts, elements);
  63. /*
  64.     в фразе мы должны сказать - что проверяли, какое действительное значение и какое ожидаемое
  65.  
  66.     напоминаю - это кондишен texts )
  67.  
  68.     напоминаю - про Arrays.toString()
  69. */
  70. ***************************************************************
  71.  
  72. return elementExceptionsCatcher(new ExpectedCondition<WebElement>() {
  73.             private String actualText;
  74.             List<String> elementTexts = new ArrayList<String>();
  75.  
  76.             public WebElement apply(WebDriver driver) {
  77.                 for (WebElement element : elements) {
  78.                     elementTexts.add(element.getText());
  79.                 }
  80.                 /*
  81.                     с каждым вызовом apply  - строк в списке elementTexts
  82.                     будет все больше
  83.  
  84.                     а тебе надо - чтобы после вызова apply - в этом списке был верный набор строк
  85.                     очищай список elementTexts или инициализируй его непосредственноперед циклом
  86.  
  87.                     заметь - у тебя этот код повторяется в 2-ух кондишенах
  88.                     а раз так - реализуй метод List<String> getTexts(List<WebElement> elements)
  89.  
  90.                     метод универсальный, может еще где-то пригодиться
  91.                     вынеси его в класс Helpers
  92.                  */
  93.  
  94.                 WebElement element = elements.get(index);
  95.                 actualText = element.getText();
  96.                 /*
  97.                     ну... тут спорно)
  98.                     теоретически - можешь получить уже другой текст, нежели тот, который ранее получен в списке
  99.  
  100.                     я бы текст уже брала из elementTexts
  101.                 */
  102.   **************************************
  103.                   } catch (StaleElementReferenceException e) {
  104.                       return null;
  105.                   } catch (ElementNotVisibleException e) {
  106.                       return null;
  107.                   } catch (IndexOutOfBoundsException e) {
  108.                       return null;
  109.                   }
  110. /*
  111.     одну catch-секцию реализуй
  112.     http://stackoverflow.com/questions/3495926/can-i-catch-multiple-java-exceptions-in-the-same-catch-clause
  113. */
Add Comment
Please, Sign In to add comment