打开多个页面后,如果我们当前 句柄 不在当前打开页面时候,我们就无法获取需求页面元素
解决方法:
1 方法一
场景:打开多个窗口,需要定位到新打开的窗口
# 获取打开的多个窗口句柄
windows = driver.window_handles
# 切换到当前最新打开的窗口
driver.switch_to.window(windows[-1])
注意:
# 显示当前页面一共有多少个句柄,结果是一个列表['' ,'']
windows= driver.window_handles
now_window = driver.current_window_handle # 当前页面的句柄
driver.switch_to.window(windows[1]) # 移动句柄
time.sleep(2)
举例:
from selenium import webdriver
import time
# 主页【第一个窗口】
driver = webdriver.Chrome()
driver.get('http://www.kgc.cn/')
driver.maximize_window()
# 点击全部课程,进入课程库【第二个窗口】
driver.find_element_by_link_text('全部课程').click()
time.sleep(3)
# 使用第一种方法切换浏览器【切换到第二个(也就是最新的)窗口】
windows = driver.window_handles
driver.switch_to.window(windows[-1])
time.sleep(3)
# 点击课程库中某个课程,进入课程详情界面【在第二个窗口页面进行元素点击操作,来判断窗口是否切换成功】
driver.find_element_by_xpath('//*[@id="yw1"]/ul/li[2]').click()
time.sleep(3)
# 关闭浏览器
driver.quit()
print('测试通过')
版权声明:本文为CSDN博主「Xahoo!」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Owen_goodman/article/details/107669410