selenium 多窗口切换的实现(windows)

时间:2021-05-22

在web应用中,常常会遇见点击某个链接会弹出一个新的窗口,或者是相互关联的web应用 ,这样要去操作新窗口中的元素,这时就需要主机切换到新窗口进行操作。。WebDriver 提供了switchTo().window()方法可以实现在不同的窗口之间切换。

以下代码是以新浪网为实例。通过获取句柄切换到指定窗口,并关闭窗口。当然切换到指定窗口,也可以通过元素定位等方法对元素进行操作。

getWindowHandle():获得当前窗口句柄。

getWindowHandles():返回的所有窗口的句柄到当前会话。

switchTo().window():用于切换到相应的窗口,与上一节的switchTo().frame()类似,前者用于不同窗口的切换,后者用于不同表单之间的切换。

public static void main(String[] args) throws InterruptedException {System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe");ChromeOptions Options = new ChromeOptions();Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data");WebDriver driver = new ChromeDriver(Options);driver.manage().window().maximize();// 窗口最大化driver.get("http://.cn/");driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);// 设置元素等待时间 ,隐式等待String sreachHand = driver.getWindowHandle();// 获取当前窗口的句柄driver.findElement(By.linkText("体育")).click();// 打开新浪官网上的体育链接driver.findElement(By.linkText("娱乐")).click();// 打开新浪官网上的娱乐链接java.util.Set<String> Handles = driver.getWindowHandles();System.out.println(Handles.size() + "集合长度");// 获取所有窗口的句柄并将句柄放在Set集合中。// 以下判断是否是新浪网首页,如果是则关闭新浪网首页。for (String i : Handles) {if (i.equals(sreachHand)) {driver.switchTo().window(i);Thread.sleep(5000);driver.close();}}}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章