欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

web自动化--如何在不同页面间游刃有余

程序员文章站 2022-03-26 09:23:32
大家都知道,selenium中对页面元素的操作都是基于当前页面进行操作的,有时会有这种情况,在这个页面操作完一个步骤后,要去另一个页面查看,这就涉及到页面间的操作 总结:对一个页面操作完并close之后,一定要先进行切换到目标窗口方可进行操作,否则会提示错误或者找不到元素,因为如果不进行切换操作,程 ......

大家都知道,selenium中对页面元素的操作都是基于当前页面进行操作的,有时会有这种情况,在这个页面操作完一个步骤后,要去另一个页面查看,这就涉及到页面间的操作

 1 # -*- coding:utf-8 -*-
 2 '''
 3 created on oct 17, 2018
 4 
 5 comment: 
 6 '''
 7 import time
 8 from selenium import webdriver
 9 driver = webdriver.chrome()
10 driver.implicitly_wait(20)
11 driver.get("http://news.baidu.com/") # 打开百度新闻首页
12 driver.find_element_by_partial_link_text("十九大精神").click() # 打开一个新窗口
13 handle = driver.window_handles # 获取所有打开窗口的句柄
14 driver.switch_to_window(handle[-1]) # 打开最后一个窗口
15 time.sleep(5)  # 加延时,以防页面还未完全加载完成就被关掉了
16 driver.close()  # 关闭最后一个窗口
17 driver.switch_to_window(handle[0]) # 打开第一个窗口
18 time.sleep(3)
19 driver.close() # 关闭第一个窗口

总结:对一个页面操作完并close之后,一定要先进行切换到目标窗口方可进行操作,否则会提示错误或者找不到元素,因为如果不进行切换操作,程序会认为你当前还处理原来界面,但是原来界面已经被关掉了,所以就报错了。