selenium_多窗口切换整理--第二节

第一种方法:

使用场景:

打开多个窗口,需要定位到新打开的窗口

使用方法:

#获取打开的多个窗口句柄

windows=driver.window_handles

#切换到当前最新打开的窗口

driver.switch_to(windows[-1])

代码如下:

from selenium import webdriver
from time import sleep

# 打开课工场网站主页【第一个窗口】
driver=webdriver.Firefox()
driver.get("http://www.kgc.cn/")
driver.maximize_window()

# 点击全部课程,进入课程库【第二个窗口】
driver.find_element_by_link_text("全部课程").click()
sleep(3)

windows=driver.window_handles  #获得当前浏览器所有窗口
driver.switch_to.window(windows[-1]) #切换到最新打开窗口(注:也就是全部课程这个窗口)
sleep(3)

driver.find_element_by_link_text("Python").click() #在新窗口选择一门课程进入详细界面
sleep(3)
driver.quit()
print("定位成功")

窗口归类:

# 你打开的浏览器,谷歌
browser = webdriver.Chrome()
# 你中间的操作
...
# 获取当前浏览器所有的窗口
handles = browser.window_handles
# handles为一个数组:handles = [窗口1,窗口2,...]
# 窗口切换,切换为新打开的窗口
browser.switch_to_window(handles[-1])
# 切换回最初打开的窗口
browser.switch_to_window(handles[0])
# 新增一个窗口打开url
newwindow='window.open("https://www.baidu.com");'
browser.execute_script(newwindow)
# 关闭当前窗口
browser.close()
# 关闭所有窗口
browser.quit()

第二种方法:

使用场景:

打开两个窗口,需要定位到新打开的窗口

使用方法:

#获得当前打开的第一个窗口句柄

window_1=driver.current_window_handle

#获得当前打开的所有窗口的句柄

windows=driver.window_handles

#切换到当前最新的窗口

for current_window in windows:

    if current_window != window_1:

        driver.switch_to.window(current_window)

代码如下:

from selenium import webdriver
from time import sleep
driver=webdriver.Firefox()
driver.get("http://www.kgc.cn")
driver.maximize_window()

driver.find_element_by_link_text("全部课程").click()
window_1=driver.current_window_handle
windows=driver.window_handles
print(windows)  #输入句柄集合
for current_window in windows:   #切换窗口
    if current_window != window_1:
        driver.switch_to.window(current_window)
sleep(4)

driver.find_element_by_link_text("Python").click() #最新窗口的定位
sleep(3)
driver.close() #关闭当前窗口
sleep(5)
driver.quit() #关闭所有窗口
print("thank you")

截图:

selenium_多窗口切换整理--第二节_第1张图片

selenium_多窗口切换整理--第二节_第2张图片













你可能感兴趣的:(selenium_多窗口切换整理--第二节)