2016-04-13 23 views
0

Ben C#,
Selenium kullanarak bir Web uygulaması otomatikleştirmek çalışıyorum Ben ana sayfasında, başka bir sayfaya götüren bağlantıyı tıklıyorum. sonra ben
string parent = webDriver.CurrentWindowHandle; while (webDriver.WindowHandles.Count <= 1) ; // wait for new tab foreach (string handle in webDriver.WindowHandles) { if (handle != parent) { webDriver.SwitchTo().Window(handle); break; } }
bu yeni sayfa, yalnızca iki bağlantılar (kullanıcı rolünü seçmek için)
ikinci linke tıkladıktan sonra bir JavaScipt ve yeni verilerle Tüm sayfa değişiklikleri yüklendiği olan aşağıdaki kodu kullanarak bu yeni sayfaya geçmek aynı sayfa
Ancak, Sayfa değiştikten sonra, webdriver aynı sayfayı döndürürSource (sayfanın 2 bağlantısı vardı)
değiştirilen sayfanın başlığı doğru olarak tarayıcıda verilmiştir
Bu belgeyi okudum webdriver her zaman en son sayfa döndürürSource
bunu kabul ederek, yalnızca yanlıştır ve sürücü ha i
bekliyorum chnaged sayfasını ndling Yani webDriver.FindElements(By.XPath(//a);
kullanarak küçük bir test yaptım ama değişen sayfadan etiketlerini vermedi, onun yerine iki seçim bağlantıları vardı sayfasından etiketleri verdi.
neden sürücü en son etiketleri vermiyor?
Bu konuda takılıyorum ve gerçekten herhangi bir yardım için takdir edeceğim ..
şimdiden teşekkürler!IE Webdriver pageSource sayfadaki chnage sonra ferahlatıcı değil nedeniyle nedeniyle

cevap

0

ben sayfa tam sayfa kaynağını almadan önce yüklenmiş olduğunu belirten bir öğesi bekleyeceğini:

WebDriverWait wait = new WebDriverWait(driver, 20); 

// switch to the next window 
String main_handle = driver.getWindowHandle(); 
wait.until((WebDriver drv) -> { 
    for (String handle : drv.getWindowHandles()) { 
     if (handle != main_handle) { 
      drv.switchTo().window(handle); 
      return true; 
     } 
    } 
    return false; 
}); 

// wait for an element which presence indicates that the page is loaded 
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("..."))); 

// get the page source 
String page_source = driver.getPageSource(); 
İlgili konular