备忘:打开多个页面后,如果我们当前 句柄 不在当前打开页面时候,我们就无法获取需求页面元素

打开多个页面后,如果我们当前 句柄 不在当前打开页面时候,我们就无法获取需求页面元素

解决方法:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容