1

当我在 FirefoxDriver 上使用 selenium 时,我正在使用以下代码切换窗口

final Set<String> allwindowID = driver.getWindowHandles();
        final Iterator<String> itr = allwindowID.iterator();
        while (itr.hasNext()) {
            if (parentID == itr.next()) {
                parentID = itr.next();
            }
            else {
                childID = itr.next();
            }
        }
        driver.switchTo().window(childID);

但是当我使用 HtmlUnitDriver 时,相同的代码不起作用。有人可以帮忙吗?

4

1 回答 1

0

您正在比较字符串引用而不是字符串值,请使用equals()而不是==.

while (itr.hasNext()) {
    if (parentID.equals(itr.next())) { 
        parentID = itr.next();   
    } else {
        childID = itr.next();
    }
}
driver.switchTo().window(childID);

有关详细信息:如何比较 Java 中的字符串?

你也可以重写相同的方法

while (itr.hasNext()) {
    if (!parentID.equals(itr.next())) { 
        // No need to reassign same value to parentID  
        childID = itr.next();       
    }
}
driver.switchTo().window(childID);
于 2015-05-12T07:44:38.067 回答