我写了下面的代码,我期待在控制台中我应该得到 打开的窗户总数:1 但结果是Total windows打开:2 请让我知道为什么它显示总窗口打开:2而不是1
Firefox版本: 48.0.2 操作系统:Windows 10 Selenium Webdriver版本: 3.0.0
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class TravelOPod {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver","C:\\Eclipse\\Drivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(15, TimeUnit.SECONDS);
Set<String> windowIDs = driver.getWindowHandles();
System.out.println("Total windows opened: "+windowIDs.size());
Iterator<String> it = windowIDs.iterator();
System.out.println(it.next());
System.out.println(it.next());
}
}
答案 0 :(得分:0)
我认为,第一个标签是您的默认标签,另一个标签可能是由您的某个扩展程序引起的。
您可以在附加组件页面上检查不重要或无法识别的扩展名。
我希望,停用意外的扩展程序可以解决您的问题。
答案 1 :(得分:0)
driver.getWindowHandles();
这将返回字符串集,这只是窗口对象的哈希码值。因此,在您的情况下,您有两个窗口对象,第一个是默认情况下,第二个是打开的新选项卡
我想,由于您正在打印的声明,您自己会感到困惑,
System.out.println(“打开的总窗口数:”+ windowIDs.size());
它不打印“打开”窗口的大小,而是打印可用的窗口
如果你想只抓住一个窗口,那就用吧 driver.getWindowHandle(); //这将返回String
中的当前驱动程序对象