【问题标题】:Swiching window in HtmlUnit在 HtmlUnit 中切换窗口
【发布时间】:2015-05-12 05:51:29
【问题描述】:

当我在 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 时,相同的代码不起作用。有人可以帮忙吗?

【问题讨论】:

  • 你有什么异常吗?
  • java.util.NoSuchElementException
  • this 线程中提到了一个修复程序。尝试直接在driver.switchTo().window(windowname);中指定windowname

标签: java selenium selenium-webdriver selenium-firefoxdriver htmlunit-driver


【解决方案1】:

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

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

详情:How do I compare strings in Java?

你也可以重写与

相同的方法
while (itr.hasNext()) {
    if (!parentID.equals(itr.next())) { 
        // No need to reassign same value to parentID  
        childID = itr.next();       
    }
}
driver.switchTo().window(childID);

【讨论】:

  • 不工作。仍然得到 java.util.NoSuchElementException
猜你喜欢
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多