2015-07-20 3 views
2

Я проверяю иерархию папок на веб-странице в зависимости от типа пользователя. User1 имеет набор разрешений, которые позволяют ему видеть структуру папок, как это:Обработка нескольких таблиц с использованием веб-сервера selenium

Main Folder 
    - First Child 
     -First Grandchild 
     -Second Grandchild 
    - Second Child 
    - Third Child 

Каждая ветвь дерева представляет собой таблицу, состоящую из 1 строки. Но количество столбцов меняется в зависимости от поколения.

Родитель «Основная папка» имеет только 1 столбец. Содержимое ячейки - это строка «Основная папка».

В дочерних ветвях есть 2 столбца, первая ячейка содержит пустое пространство, а следующая ячейка содержит название ветки («Первый ребенок», «Второй ребенок»).

Ветви внуков имеют 3 колонки, первую и вторую ячейки, содержащие пустое пространство, и третью ячейку, содержащую название ветки («Первый внук», «Второй внук»).

HTML код:

<div id = 0> 
    <div id = 1> 
    <table id = 1> 
    <tbody> 
     <tr> 
      <td id="content1" 
       <a id="label1" 
       <span id="treeNode1" 
       Main Folder 
       </span> 
       </a> 
      </td> 
     </tr> 
    </tbody> 
    </table> 

      <div id = 2> 
      <table id = 2> 
      <tbody> 
       <tr> 
        <td>  
        <td id="content2" 
         <a id="label2" 
         <span id="treeNode2" 
          First Child 
         </span> 
         </a> 
        </td> 
        </td> 
       </tr> 
      </tbody> 
      </table> 

        <div id = 5> 
        <table id = 5> 
        <tbody> 
         <tr> 
          <td> 
          <td> 
          <td id="content5" 
           <a id="label5" 
           <span id="treeNode5" 
            First GrandChild 
           </span> 
           </a> 
          </td> 
          </td> 
          </td> 
         </tr> 
        </tbody> 
        </table> 
        </div> 

        <div id = 6> 
        <table id = 6> 
        <tbody> 
         <tr> 
          <td> 
          <td> 
          <td id="content6" 
           <a id="label6" 
           <span id="treeNode6" 
            Second GrandChild 
           </span> 
           </a> 
          </td> 
          </td> 
          </td> 
         </tr> 
       </tbody> 
       </table> 
       </div> 
      </div> /* End of division 2 */ 


      <div id = 3> 
      <table id = 3> 
      <tbody> 
       <tr> 
         <td> 
         <td id="content3" 
          <a id="label3" 
          <span id="treeNode3" 
           Second Child 
          </span> 
          </a> 
         </td> 
         </td> 
       </tr> 
      </tbody> 
      </table> 
      </div> 


      <div id = 4> 
      <table id = 4> 
      <tbody> 
      <tr> 
         <td> 
         <td id="content4" 
          <a id="label4" 
          <span id="treeNode4" 
           Third Child 
          </span> 
          </a> 
         </td> 
         </td> 
      </tr> 
      </tbody> 
      </table> 
      </div> 

    </div> /*End of division 1 */ 
</div> /* End of division 0 */ 

Пользователь2 имеет другой набор разрешений, которые позволяют ему видеть структуру папок, как это:

Main Folder 
    - First Child 
     -First Grandchild 
    - Second Child 
    - Third Child 

Соответствующая таблица отсутствует в HTML коде этого пользователя.

Мой тестовый пример - проверить, что User2 не имеет доступа ко второму внуку. Это означает, что мне нужно убедиться, что на веб-странице не существует определенной таблицы.

Как я могу проверить это в селене? Я использую JUnit для своих тестовых случаев. Я хочу сделать «утверждение», чтобы второго внука не было.

ответ

3

Вы хотите проверить, нет ли элемента или нет. Вызов isElementVisible() внутри assert false должен делать трюк. Просто получите локатор By из элементов, которые вы хотите проверить.

private boolean isElementVisible(By by) 
{ 
    try 
    { 
     return driver.findElement(by).isDisplayed(); 
    } 
    catch(NoSuchElementException e) 
    { 
     return false; 
    } 
} 
+0

Спасибо. Попробуй это. – sanaku

+0

Хмм лучше было бы вернуть ложь за пределы блока catch, если элемент не отображается, но найден. – Karthik

+0

@Karthik Если элемент найден, а не visisble isDisplayed() вернет false. –

Смежные вопросы