鱼C论坛

 找回密码
 立即注册
查看: 1802|回复: 0

[学习笔记] 关于selenium中句柄顺序的问题

[复制链接]
发表于 2020-6-26 17:44:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 yjptx121 于 2020-7-1 20:41 编辑
from selenium import webdriver
import time

drive_path = r'H:\Python程序\geckodriver'                            # 路径
driver = webdriver.Firefox(executable_path=drive_path)              # 驱动浏览器

driver.get('https://www.baidu.com/')                                # 访问网页
time.sleep(2)
driver.execute_script("window.open('https://www.163.com/')")        # 打开新页面
time.sleep(2)
driver.execute_script("window.open('https://www.jd.com/')")         # 打开新页面
time.sleep(2)
driver.execute_script("window.open('https://changde.58.com/')")     # 打开新页面

print(driver.window_handles)                                        # 获得所有打开页面的句柄
driver.switch_to.window(driver.window_handles[3])                   # 切换到句柄1(第二个)
time.sleep(5)
print(driver.current_url)                                           # 显示当前页面
driver.quit()

# 使用selenium进行测试,通过driver.execute_script打开多个网页,然后使用driver.window_handles获得打开网页的句柄
# 按我的理解,句柄的顺序应该就是按照打开网页的先后顺序,但在实际切换网页的操作中却不是的,比如我使用
# driver.switch_to.window(driver.window_handles[1])显示的却是58的网页,我有发现,用selenium进行测试时
# 火狐浏览器打开网页的顺序并不是接着最后一个网页打开新标签页,而是紧跟着第一个网页(百度)打开,所以会导致打开的网页在排列
# 上与打开的顺序不一致,个人认为这就是导致句柄排列顺序错乱的原因
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 14:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表