马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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进行测试时
# 火狐浏览器打开网页的顺序并不是接着最后一个网页打开新标签页,而是紧跟着第一个网页(百度)打开,所以会导致打开的网页在排列
# 上与打开的顺序不一致,个人认为这就是导致句柄排列顺序错乱的原因
|