我打开了多个chrome窗口,但是selenium中的getWindowHandles总是返回大小为1,即使chrome的多个实例都打开了。
下面是代码:
System.setProperty("webdriver.chrome.driver", "C:/Downloads/New folder/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com/");
driver = new ChromeDriver();
driver.get("https://www.rediffmail.com/");
driver = new ChromeDriver();
driver.get("https://www.facebook.com/");
Set<String> ids = driver.getWindowHandles();
System.out.println(ids.size());
System.out.println(ids);
以下是输出:
1
[CDwindow-DBDAD89956F46A4DE6DC3F16E70D79A6]
你知道为什么会这样吗?或者也许我做错了什么。
Im使用Selenium-Java"selenium-java-3.13.0"
JDK"10.0.2"
Chrome“版本68.0.3440.75(官方版本)(64位)”
首先,我们需要找到有多少个窗口为此打开,需要以字符串形式存储getWindowHandles,如下所示,希望下面的代码能有所帮助。
试试下面的代码
Set<String> allWindowHandles = driver.getWindowHandles();
int count = allWindowHandles.size();
System.out.println("Number of browser windows opened on the system is : "+ count);
for (String windowHandle : allWindowHandles) {
//switch to each browser window
driver.switchTo().window(windowHandle);
String title = driver.getTitle();
//print the window handle id of each browser window
System.out.println("Window handle id of page -->"+ title +" --> is : "+windowHandle);
}
getWindowHandles()
方法将返回当前WebDriver实例的窗口句柄集。
在这里,您正在创建每个url的不同实例,并尝试获取WindowHandles。因此,它将大小返回为1。
实例1:
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com/")
实例2:
driver = new ChromeDriver();
driver.get("https://www.rediffmail.com/");
实例3:
driver = new ChromeDriver();
driver.get("https://www.facebook.com/");
创建实例3后,您将找到windowhandles。因此,driver
对象将保存实例3,因此driver。getWindowHandles()
返回为1。
您可以尝试使用同一驱动程序对象打开多个不同的选项卡,然后检查WindowHandles的大小。
为了便于理解,请在实例3之后添加以下步骤,您可以观察getWindowHandles的大小。
//Latest driver instance is passed
JavascriptExecutor js=(JavascriptExecutor)driver;
String url1="https://www.rediffmail.com/";
String url2="https://www.google.com/";
js.executeScript("window.open(arguments[0])",url1); //New Tab will be opened
js.executeScript("window.open(arguments[0])",url2); //New Tab will be opened
Set<String> ids = driver.getWindowHandles();
System.out.println(ids.size());
System.out.println(ids);
输出:
3个
上下文中的代码: 这段代码在Windows7和Windows8.1上的IE11上运行良好,可以切换到第二个窗口,但在Windows10上不起作用。 在Windows 10中, 使用的硒和IE版本是2.53.1。
我目前正在使用selenium+Cucumber+Internet Explorer自动化一个基于IBM Cognos平台的应用程序,并面临一些挑战。在这些问题上,我需要这个小组的专家帮助。 null
本文向大家介绍tensorflow 大于某个值为1,小于为0的实例,包括了tensorflow 大于某个值为1,小于为0的实例的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧~ 补充知识:TensorFlow中获取大于零的元素集合 a为tensor idx = tf.where(a > 0) output = tf.gather_nd(a, idx) 以上这篇ten
案例2: 但是在第二种情况下,即使arraylist中没有项,它的大小也将得到mySignimgList2.size()=1。
问题内容: 我试图计算表中的行数,并认为这是执行此操作的正确方法: 但是计数总是返回。如果我在phpMyAdmin中使用相同的查询,则会得到正确的结果。它位于表格中,因此我也尝试进行测试,但是返回了。 什么是正确的方法? 问题答案: 您必须获取一条记录,它将包含Count()的结果
Selenium<代码>列表 代码段: ====================================================================== 我使用,但它也不起作用