yjptx121 发表于 2020-6-26 17:44:57

关于selenium中句柄顺序的问题

本帖最后由 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)                   # 切换到句柄1(第二个)
time.sleep(5)
print(driver.current_url)                                           # 显示当前页面
driver.quit()

# 使用selenium进行测试,通过driver.execute_script打开多个网页,然后使用driver.window_handles获得打开网页的句柄
# 按我的理解,句柄的顺序应该就是按照打开网页的先后顺序,但在实际切换网页的操作中却不是的,比如我使用
# driver.switch_to.window(driver.window_handles)显示的却是58的网页,我有发现,用selenium进行测试时
# 火狐浏览器打开网页的顺序并不是接着最后一个网页打开新标签页,而是紧跟着第一个网页(百度)打开,所以会导致打开的网页在排列
# 上与打开的顺序不一致,个人认为这就是导致句柄排列顺序错乱的原因
页: [1]
查看完整版本: 关于selenium中句柄顺序的问题