julia_v_iluhina

Untitled

Sep 12th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.53 KB | None | 0 0
  1. public static ExpectedCondition<Boolean> sizeOfVisibleElements(final By elementsLocator, final int expectedSize) {
  2.         ...
  3.             public String toString() {
  4.                 return String.format("\nsize of list: %s\n should be: %s\n while actual size is: %s\n", visibleElements, expectedSize, listSize);
  5.             }
  6. /*
  7.     имя кондишена - по аналогии  с exactTextsOfVisible
  8.     можно лаконичнее написать - sizeOfVisible
  9.  
  10.     в сообщении toString() - ничего не сказано про фильтрации по visible
  11.  
  12.     size of list located by ...
  13.     filtered by visible
  14.     should be ...
  15.     while actual size is ...
  16.  
  17.     лучше вывести локатор списка и написать про фильтрацию по видимости
  18.     т к - это больше полезной информации даст, чем текстовое представление списка visibleElements
  19. */
  20. ***********************************************************
  21.  
  22.   public static ExpectedCondition<WebElement> listElementWithText(final By elementsLocator, final String expectedText) {
  23.  
  24. ...
  25.                     if (actualTexts.get(i).equals(expectedText)) {
  26. ....
  27.  
  28.     public static ExpectedCondition<WebElement> listElementWithExactText(final String elementsLocator, final String expectedText) {
  29. ...
  30.                     if (actualTexts.get(i).equals(expectedText)) {
  31. ....
  32.  
  33.     public static ExpectedCondition<WebElement> listElementWithExactText(final By elementsLocator, final String expectedText) {
  34. ...
  35.                     if (actualTexts.get(i).equals(expectedText)) {
  36. ...
  37. /*
  38.     не понятно
  39.  
  40.     кондишен listElementWithText и listElementWithExactText - реализованы одинаково
  41.  
  42.     а кондишенов listElementWithExactText - вообще 2 штуки
  43.  
  44.     разберись)
  45. */
  46. **************************************************
  47.  
  48. public static ExpectedCondition<WebElement> listElementWithClass(final By elementsLocator, final String cssClass) {
  49.  
  50.         return elementExceptionsCatcher(new ExpectedCondition<WebElement>() {
  51.             List<String> actualAttributes = new ArrayList<String>();
  52.             /*
  53.                 я бы назвала actualClasses
  54.             */
  55.  
  56.             public WebElement apply(WebDriver driver) {
  57.                 List<WebElement> elements = driver.findElements(elementsLocator);
  58.                 for (WebElement element : elements) {
  59.                 /*
  60.                     обрати внимание - ты используешь один цикл - чтобы собрать
  61.                     в список - фактические классы элементов
  62.                     и найти подходящий элемент
  63.                 */
  64.                     actualAttributes.add(element.getAttribute("class"));
  65.                     String[] attributes = element.getAttribute("class").split(" ");
  66.                     /*
  67.                         преобразование верное
  68.                         и тут бы - вместо attributes - я бы использовала classes
  69.                     */
  70.                     for (String attribute : attributes)
  71.                         if (attribute.equals(cssClass)) {
  72.                             return element;
  73.                             /*
  74.                                 если мы нашли второй элемент из десяти
  75.                                 то - в actualAttributes - у нас будет информация только о двух элементах
  76.  
  77.                                 соглашусь - что если toString() кондишена вызывать только в случае, если
  78.                                 проверка не прошла - то мы в actualAttributes - получим описание классов всех элементов списка
  79.  
  80.                                 соглашусь - что toString() кондишена обычно только так и используется
  81.  
  82.                                 но
  83.                                 вообще-то toString() любого объекта - это просто описание этого объекта
  84.                                 потому - корректнее было бы - в первом цикле получить
  85.                                 описание классов всех элементов списка
  86.                                 а во втором цикле - уже принимать решение
  87.                                 цель - одинаково работающий toString(), не зависящий от контекста
  88.  
  89.                                 все же это важно - предсказуемость и однозначность
  90.  
  91.                                 хотя конечно - соблазнительно оптимизировать )
  92.                             */
  93.   *****************************************************
  94.  
  95.    public static WebElement startEditing(String taskText, String taskTextEdited) {
  96. /*
  97.     почему параметры - не String oldTaskText, String newTaskText ?
  98.  
  99.     как-то пропустили - и я, и ты)
  100. */
  101. *********************************************************
  102. getDriver().getCurrentUrl()
  103. /*
  104.     реализуй в ConciseAPI - метод url()
  105.     полезная штука
  106. */
Advertisement
Add Comment
Please, Sign In to add comment