2015-07-20 94 views
2

我正在檢查網頁上的文件夾層次結構,具體取決於用戶的類型。用戶1有一組權限這使他看到這樣的文件夾結構:使用selenium webdriver處理多個表

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

樹的每個分支是由1行的表。但是,列的數量因世代而異。

「主文件夾」父項只有1列。單元格內容是字符串「主文件夾」。

子分支有2列,第一個單元格包含空格,下一個單元格包含分支名稱(「First Child」,「Second Child」)。

孫子分行有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

您需要檢查該元素是否不存在或不可見。在一個assert false中調用isElementVisible()應該可以做到這一點。只需獲取要檢查的元素的By定位器即可。

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

謝謝。會試試這個。 – sanaku

+0

嗯,如果元素不可見但被發現的情況下,最好在catch塊外面返回false。 – Karthik

+0

@Karthik如果找到元素並且不可見,則isDisplayed()將返回false。 –

相關問題