当只打开一个窗口时,我只会使用下面的方法来获取子窗口:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.a.com')
handles = browser.window_handles
parent_a = browser.current_window_handle
browser.execute_script('window.open("http://www.a1.com");')
new_handles = browser.window_handles
child_a = new_handles[-1]
但是,当几个新窗口同时打开时,如何获取parent_a的子窗口? 子窗口的网址和标题未知。
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.a.com')
handles = browser.window_handles
parent_a = browser.current_window_handle
browser.execute_script('window.open("http://www.a.com");')
parent_b = browser.window_handles[-1]
www.a.com将打开新窗口并自动关闭它。 如何获得parent_a.children和parent_b.children。
http://www.a.com的源代码:
<html>
<head>
<title>a.com</title>
<script type="text/javascript">
var newWin=window.open('random-url');
sleep(randomtime);
newWin.close();
</script>
</head>
<body>
body content
</body>
</html>
使用javascript,您可以保存新打开的窗口,因此不是问题。
var child = window.open('http://www.b.com')
parent = child.openner