簡體   English   中英

Selenium IE驅動程序在同一窗口的多個選項卡上使用getWindowHandles方法時將選項卡數返回1

[英]Selenium IE driver returns tab count as 1 while using getWindowHandles method on multiple tabs of same window

我正在使用Selenium Web驅動程序+ Internet Explorer使門戶自動化,能夠在現有窗口上打開多個新選項卡,但無法將URL傳遞給新打開的選項卡,IE無法識別新選項卡,並且getWindowHandles()返回計數與1一樣,相同的代碼在Chrome上也能正常工作。

示例代碼1:

String baseUrl = "www.facebook.com";
driver.get(baseUrl);
driver.findElement(By.xpath("//*[@id='userName']")).sendKeys("xyz");
driver.findElement(By.xpath("//*[@id='password']")).sendKeys("****");
driver.findElement(By.xpath("//*[@id='loginButton']")).click();

driver.findElement(By.cssSelector("Body")).sendKeys(Keys.CONTROL +"t");   
driver.getWindowHandles();
ArrayList<String> tabs =  new ArrayList<String>(driver.getWindowHandles()); 

driver.switchTo().window(tabs.get(1)); //switches to new tab
driver.get("www.google.com");

示例代碼2:

String baseUrl = "www.facebook.com";
driver.get(baseUrl);
driver.findElement(By.xpath("//*[@id='userName']")).sendKeys("xyz");
driver.findElement(By.xpath("//*[@id='password']")).sendKeys("****");
driver.findElement(By.xpath("//*[@id='loginButton']")).click();

String parent = driver.getWindowHandle();
driver.findElement(By.cssSelector("Body")).sendKeys(Keys.CONTROL +"t");
Thread.sleep(3000);
for(String winHandle : driver.getWindowHandles()){
    if(!winHandle.equals(parent)){
        driver.switchTo().window(winHandle);
        driver.get("www.google.com");
    }
}

還嘗試了其他幾種更改IE配置的方法,例如更改保護模式/覆蓋自動cookie處理,但沒有任何效果。

有沒有辦法通過代碼在IE中打開新標簽頁並使用Selenium中的任何方法獲取准確的標簽頁數?

組態:

IE:11,Selenium-java:2.47 / 3.7 IEDriver:3.3.0 / 2.53,Windows 7

我在IE8中也遇到了類似的問題,在調用driver.getWindowHandles()之前,我使用driver.switchTo()。defaultContent()解決了。 像這樣:

// Save the parent
parent = driver.getWindowHandle();
driver.switchTo().defaultContent();
for (String winHandle : driver.getWindowHandles()) {
        driver.switchTo().window(winHandle);
        if (!winHandle.equals(parent)) {
        // Do something
        }
}
driver.close();
driver.switchTo().window(parent);

暫無
暫無

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

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