当前位置: 移动技术网 > IT编程>脚本编程>Python > selenium 多窗口切换的实现(windows)

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

2020年03月09日  | 移动技术网IT编程  | 我要评论

滑县版唐伯虎点秋香,h4399小游戏大全,司雯嘉 高山峰

在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://www.sina.com.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();

}
}

}

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网