簡體   English   中英

如何使用Selenium WebDriver處理疊加/彈出窗口

[英]How to handle overlay/popup window using selenium webdriver

我正在嘗試通過網頁自動(服務器的)初始配置。 擊中我的服務器ip https:/ localhost:4443並輸入我的憑據后,我得到一個更改密碼的窗口(覆蓋/彈出窗口)。

問題:-如果我從另一台m / c或另一台瀏覽器瀏覽相同的ip,則會在窗口上方顯示一個窗口,即在更改密碼窗口上顯示一個窗口( 請單擊鏈接以查看屏幕截圖 )。

我嘗試的是獲取窗口的句柄,但它不起作用,僅提供一個句柄。

**它也沒有框架。

HTML代碼-https://dl.dropboxusercontent.com/u/91420517/Html_Code.JPG

這是我的代碼

    WebDriver driver=new FirefoxDriver();
    driver.get("https://localhost:4443/ControlPoint/");
    driver.findElement(By.xpath("//*[@id='name']")).sendKeys("xxxxxx");
    driver.findElement(By.xpath("//*[@id='pass']")).sendKeys("xxxxxx");
    driver.findElement(By.xpath("//*[@id='loginForm123']/div[6]/div[1]/div")).click();

    Set<String> winIds = driver.getWindowHandles();
    System.out.println("Total Windows --- " + winIds.size());    // its resulting the size as 1 which is not correct.
    Iterator<String> it = winIds.iterator(); 
    String mainWin=it.next();
    String changeWin=it.next();
    String shareWin =it.next();
    driver.switchTo().window(shareWin);
    String warning = driver.findElement(By.xpath("html/body/div[4234]/div[1]/span")).getText();  // to get the text on 3 window
    System.out.println(warning);

如何解決此問題。請提供幫助。 單擊窗口3上按鈕的任何其他方式。

如果附加窗口是異步打開的,則可能在創建之前就過早檢查了它(使用getWindowHandles() )-這是Selenium測試和異步頁面更新的常見問題。

如果這是問題所在,則可以通過在兩次等待之間進行幾次嘗試來解決,每次檢查是否都出現了新窗口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM