2016-04-14 75 views
0

'da yeni açılmış sayfaya geçmiyor İki web sayfam var ve dolayısıyla iki ayrı sınıf var. Birinci sınıfta, aynı sayfada yeni sayfa yükleyen bir bağlantıyı tıklatarak ilk sayfada işlem gerçekleştiriyorum.Kontrol, selenium-java

FirstClass { 
    Driver.click(); 
    } 


    SecondClass extends FirstClass { 
    //code goes here 
    } 

İkinci sınıfta, genişletmeyi kullanarak birinci sınıfı miras alıyorum. Fakat 2. sayfadaki elemanlar üzerinde hareket ettiğimde, böyle bir özellik istisnası yok.

Bağlantıyı tıkladıktan sonra birinci sınıftaki eylemleri gerçekleştirirseniz, ikinci sayfayla ilgili her şey düzgün çalışıyor. Ama ikinci sınıf oluşturduğumda ve eylemi gerçekleştirmeye çalıştığımda, böyle bir eleman hatası almıyorum.

Eğer hatalıysam, sorun pencereleri değiştirmeyle ilgili değil. Ben de kontrolü değiştirmeyi denedim. ama bu çalışmıyor.

Lütfen sorunun ve çözümün ne olduğunu bana bildirin. Şimdiden teşekkür ederim. İkinci sınıf için

import java.util.List; 
import java.util.Set; 

import org.testng.Assert; 
import org.testng.annotations.Test; 

import pom.AllJobsPage; 
import pom.DashboardPage; 
import pom.ResponseManagerPage; 
import pom.SessionPage; 

public class TestSession extends ClickLogin{ 

@Test 
public void testSession() throws InterruptedException 
{ 
    SessionPage s=new SessionPage(driver); 
    String winHandleBefore = driver.getWindowHandle(); 
    s.SessionSubmit(); 
    for(String winHandle : driver.getWindowHandles()) 
    { 
     driver.switchTo().window(winHandle); 
     DashboardPage db=new DashboardPage(driver); 
     String winHandleDashB = driver.getWindowHandle(); 
     db.ClickViewMore(); 
     Set<String> allWindows = driver.getWindowHandles(); 
     for(String curWindow : allWindows){ 
      driver.switchTo().window(curWindow); 
     } 
     AllJobsPage Aj=new AllJobsPage(driver); 
     Aj.ClickResponseLink(); 

Kod geçerli::

package scripts; 
import java.util.Set; 
import org.openqa.selenium.NoSuchElementException; 
import org.testng.Assert; 
import org.testng.annotations.Test; 

import pom.ResponseManagerPage; 

public class TestResponseManager extends TestSession { 

@Test 
public void TestResponseManagerPage() throws NoSuchElementException, InterruptedException 
{ 
    ResponseManagerPage p=new ResponseManagerPage(driver); 
    p.GetStatus(); 
    Set<String> JobWindows = driver.getWindowHandles(); 
    for(String curWindow : JobWindows) 
    { 
     driver.switchTo().window(curWindow); 
    } 
    String title = driver.getTitle(); 
    Assert.assertTrue(driver.getTitle().equals(title)); 
} 

}

+0

Hem sınıfların hem de hata yığını izlemenizin ilgili kodunu yapıştırabilirsiniz. – Paras

+0

Kodu güncelledim. teşekkür ederim –

cevap

0
string BaseWindow = driver.CurrentWindowHandle; 
System.Collections.ObjectModel.ReadOnlyCollection<string> handles = driver.WindowHandles; 
if(handles.Count == 2) 
     { 
      foreach (string handle in handles) 
      { 
       if (handle != BaseWindow) 
       { 
        //Do Something. 
       } 
      } 
     } 
driver.SwitchTo().Window(BaseWindow); 

Bu benim için çalıştı İşte

First Class kodudur. Kod C# içinde. Umarım bu yardımcı olabilir.