2016-04-25 19 views
-1

This is a screen shot of my webpageここで動的に変化する要素とスクロールバー

を処理すると、HTMLコードが

<div class="slimScrollDiv" style="position: relative; overflow: hidden; width: auto; height: 350px;"><div class="scroller" style="height: 350px; overflow: hidden; width: auto;" data-always-visible="1" data-rail-visible1="0" data-handle-color="#D7DCE2"> 
 
       <div class="tsk-row clearfix"> 
 
        
 
        <div class="tsk-left">  
 
              
 
         <a href="/WorkTask/Update/776eab95-d7ea-4b5d-9c58-1c736e071895">New task to check new build of 2016.4.18.1 </a> 
 
         
 
        </div> 
 
        
 
         <a href="/WorkTask/Index/45d76b1d-f665-4e29-b22f-5c9cd335a957">test</a> 
 
        
 
        <div class="tsk-right"> 
 
         <span class="label label-warning">Assigned</span> 
 
        </div> 
 

 
       </div> 
 
       <div class="tsk-row clearfix"> 
 
        
 
        <div class="tsk-left">  
 
              
 
         <a href="/WorkTask/Update/e78ed656-c8d1-4623-b2f7-a70876d80a9d"> test 2</a> 
 
         
 
        </div> 
 
        
 
         <a href="/WorkTask/Index/01ebc490-08d3-46f5-b9f7-139f3837e289"> test</a> 
 
        
 
        <div class="tsk-right"> 
 
         <span class="label label-warning">Assigned</span> 
 
        </div> 
 

 
       </div> 
 
       <div class="tsk-row clearfix"> 
 
        
 
        <div class="tsk-left">  
 
              
 
         <a href="/WorkTask/Update/9a992f63-f331-4e5b-a04b-b2e2bdbaa6c1"> test</a> 
 
         
 
        </div> 
 
        
 
         <a href="/WorkTask/Index/01ebc490-08d3-46f5-b9f7-139f3837e289"> test</a> 
 
        
 
        <div class="tsk-right"> 
 
         <span class="label label-warning">Assigned</span> 
 
        </div> 
 

 
       </div> 
 
       <div class="tsk-row clearfix"> 
 
        
 
        <div class="tsk-left">  
 
              
 
         <a href="/WorkTask/Update/36fe32fd-f06b-47da-99d6-b3fdc060528d"> New login page</a> 
 
         
 
        </div> 
 
        
 
         <a href="/WorkTask/Index/01ebc490-08d3-46f5-b9f7-139f3837e289"> test</a> 
 
        
 
        <div class="tsk-right"> 
 
         <span class="label label-warning">Assigned</span> 
 
        </div> 
 

 
       </div> 
 
       <div class="tsk-row clearfix"> 
 
        
 
        <div class="tsk-left">  
 
              
 
         <a href="/WorkTask/Update/0af36bce-755e-4744-b17b-85be5f263bf8"> new task </a> 
 
         
 
        </div> 
 
        
 
         <a href="/WorkTask/Index/a7a8967d-0945-4b69-95d9-59026a1181ef">Ongoing</a> 
 
        
 
        <div class="tsk-right"> 
 
         <span class="label label-warning">Assigned</span> 
 
        </div> 
 

 
       </div> 
 
       <div class="tsk-row clearfix"> 
 
        
 
        <div class="tsk-left">  
 
              
 
         <a href="/WorkTask/Update/8438470a-e19d-433b-8fa6-d6ff051db570">This is testing </a> 
 
         
 
        </div> 
 
        
 
         <a href="/WorkTask/Index/01ebc490-08d3-46f5-b9f7-139f3837e289"> test</a> 
 
        
 
        <div class="tsk-right"> 
 
         <span class="label label-warning">Assigned</span> 
 
        </div> 
 

 
       </div> 
 

 
       </div> 
 
     </div><div class="slimScrollBar" style="width: 7px; position: absolute; top: 0px; opacity: 0.4; display: none; border-radius: 7px; z-index: 99; right: 0px; height: 300.245px; background: rgb(0, 0, 0);"></div><div class="slimScrollRail" style="width: 7px; height: 100%; position: absolute; top: 0px; display: none; border-radius: 7px; opacity: 0.2; z-index: 90; right: 0px; background: rgb(51, 51, 51);"></div></div>

であるここに私の自動化テストケース

ます。public void openAllTask​​は()でありますInterruptedExceptionをスローする{

List<WebElement> task=driver.findElements(By.cssSelector(".tsk-row.clearfix")); // get the list of total no of elements present in the task window 

System.out.println("size of i loop "+task.size()); 

for(int i=1; i<=task.size(); i++){ 
     //find the element one by one using xpath 
    System.out.println(driver.findElement(By.xpath("html/body/div[2]/div[3]/div/div/div/div[3]/div/div[1]/div["+i+"]/div[1]/a")).getText()); 

    driver.findElement(By.xpath("html/body/div[2]/div[3]/div/div/div/div[3]/div/div[1]/div["+i+"]/div[1]/a")).click(); 

    Thread.sleep(3000); 
    driver.navigate().back(); 
    Thread.sleep(3000); 

    // find the scroll bar and move the scroll bar by cirten pixles 
    WebElement element=driver.findElement(By.xpath("html/body/div[2]/div[3]/div/div/div/div[3]/div/div[2]")); 

    Actions act=new Actions(driver); 

    act.dragAndDropBy(element, 0, (i*10)).build().perform(); 
    Thread.sleep(3000);   

    } 

ダイナミック要素が追加されたときにスクロールしてすべての要素を読むことができるように、ハイライトされたウィンドウから各要素を選択してウィンドウをスクロールする必要があります。

答えて

0

以下のようにしてみてください。

//i am not sure about my css path is correct or not as no way to check it 
// if it prints the text and size correctly, than it will fine but if not than please give the right css path. 

List<WebElement> elements = driver.findElements(By.cssSelector(".tsk-row.clearfix > div.tsk-left> a"); 

System.out.println("size is "+elements.size()); 

for(int i = 0; i < elements.size(); i++){ 

    JavascriptExecutor js = (JavascriptExecutor)driver; 
    WebElement elem = elements.get(i); 


    //this line will scroll down to make element visible 
    js.executeScript("window.scrollTo(" + elem.getLocation().x + "," +(elem.getLocation().y- 100) + ");"); 

    //don't use this kind of wait, use explicit wait 
    Thread.sleep(1000); 
    System.out.println(elem.getText()); 
    elem.click(); 
    Thread.sleep(3000); 
    driver.navigate().back(); 
    Thread.sleep(3000); 


    } 
+0

が、これはManojさんや他に何を働いているのですか? – noor

+0

js.executeScript( "window.scrollTo(" + elem.getLocation()。x + "、" +(elem.getLocation()。y- 100)+ ");"); –

+0

@ManojBhosaleは分かりませんか? – noor

関連する問題