举例:同时打开京东多个页面后,点击京东超市页面的山姆会员店
方法:输出所有页面的句柄(相当于窗口的身份证),遍历所有句柄,当句柄页包含某个唯一标识时,则选中停留
写法一:获取所有句柄,遍历
hands = driver.window_handles #获取所有句柄,不一定按照代码顺序输出结果
import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait#显示等待导包
driver = webdriver.Chrome()
driver.implicitly_wait(10)#通常写在最前面,全局生效
driver.get('https://www.jd.com')
driver.maximize_window()
#点击多个链接
driver.find_element_by_link_text('京东家电').click()
driver.find_element_by_link_text('京东超市').click()
driver.find_element_by_link_text('京东生鲜').click()
driver.find_element_by_link_text('京东国际').click()
driver.find_element_by_link_text('拍卖').click()
#切换页面,通过句柄切换
hands = driver.window_handles #获取所有句柄,不一定按照代码顺序输出结果
for i in hands:
time.sleep(1)
driver.switch_to.window(i) #切换页面·
if driver.current_url == 'https://chaoshi.jd.com/':
break
driver.find_element_by_link_text('山姆会员店').click()
time.sleep(5)
driver.quit()
写法二:当仅两个句柄时,可直接通过下标选中窗口,写法如下
hands = driver.window_handles
driver.switch_to.window(hands[1])