如何处理driver在多个窗口之间切换?
有时候会出现这样的情况,在一个页面A点击一个链接,会触发在新Tab或者新窗口打开页面B,由于之前的driver实例对象在页面A,但是接下来的脚本是在操作页面B的元素,这样就造成了找不到元素的报错。通过selenium中swich_to.window()方法来处理这个问题。
练习场景:打开百度新闻(页面A),点击热点新闻中第一个新闻链接,会在第二个窗口打开这个新闻的具体详情页(页面B),测试需要去判断你点击这个新闻,打开详情页是否正确。
问题拆分:
1.我们已经知道switch_to.window()方法可以处理窗口切换问题;
2.在页面A跳转到页面B之前,我们需要用一个变量保存这个新闻的标题;
3.切换页面B后,我们获取这个新闻标题,然后和前面这个变量保存的值去对比,如果相等,那么就测试通过。
具体步骤:
1.实现页面A切换到页面B;
2.页面A和页面B两个新闻标题进行对比;
具体代码:
# coding=utf-8
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
# 获取新闻的标题,点击新闻
driver.get('http://news.baidu.com/')
time.sleep(1)
# 获取新闻标题
news=driver.find_elem