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

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

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

web自动化--如何在不同页面间游刃有余的更多相关文章

  1. Web自动化之Headless Chrome概览

    Web自动化 这里所说的Web自动化是所有跟页面相关的自动化,比如页面爬取,数据抓取,页面内容检测,页面功能测试,页面加载性能测试,页面回归测试等等,当前主要由如下几种解决方式: 文本数据获取 这就是 ...

  2. HTML5 Web存储 页面间进行传值

    在实际使用过程中,经常会遇到需要在页面间进行传值的情况,最初设想一定需要后端才能进行数据的存储和读取,或者在本地使用一个cookie进行保存,直到了解到HTML5 Web存储 使用HTML5的新特性可 ...

  3. JAVASCRIPT实现的WEB页面跳转以及页面间传值方法

    在WEB页面中,我们实现页面跳转的方法通常是用LINK,BUTTON LINK ,IMG LINK等等,由用户点击某处,然后直接由浏览器帮我们跳转. 但有时候,需要当某事件触发时,我们先做一些操作,然 ...

  4. Web自动化---解决登录页面随机验证码问题

    一.抛出问题 在日常的测试工作中,遇到了这样一个登录页面,如下图: 像我们之前做过UI自动化的同学就知道,自动输入账号和密码,这个简单,但是怎么样来识别验证码呢?验证码的形式有多种,有纯数字的,纯字母 ...

  5. Java WEB 之页面间传递特殊字符

    本文是学习网络上的文章时的总结以及自己的一点实践.感谢大家无私的分享. 昨天在做项目的时候,有一个页面间传递特殊字符的需求,查了一些资料.如今将自己的经验写出来. 首先.在前台编码 var fckPu ...

  6. web自动化页面元素不能键盘输入

    一.背景 web自动化中存在一部分元素属性是readonly属性,导致我们在使用自动化代码的时候无法使用sendkeys()方法传入数据,以12306网站选择出发日期为例,见下图 二.json语句处理 ...

  7. 爬虫实战:爬虫之 web 自动化终极杀手 ( 上)

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:陈象 导语: 最近写了好几个简单的爬虫,踩了好几个深坑,在这里总结一下,给大家在编写爬虫时候能给点思路.本次爬虫内容有:静态页面的爬 ...

  8. web自动化工具-livereload

    web自动化工具-livereload livereload是一个很神奇的工具,主要解放了F5键,监听文件变动,整个页面自动刷新.可搭载gulp等构建工具使用.和liveStyle 针对样式文件相比, ...

  9. web自动化工具-Browsersync

    web自动化工具-Browsersync browser-sync才是神器中的神器,和livereload一样支持监听所有文件.可是和livereload简单粗暴的F5刷新相比,browsersync ...

随机推荐

  1. ftp 读取目录列表失败

    在防火墙设置的“例外”选项卡中添加程序: C:\WINDOWS\system32\inetsrv\inetinfo.exe,确定即可!

  2. 【jQuery源码】整体架构

    jQuery源码可以精简为以下内容: 方框上面的代码根据Jq注释我们可以知道是对AMD规范的支持. jQuery整体上被包裹在一个匿名函数中,这个匿名函数再作为另一个匿名函数的参数被传入,形参fact ...

  3. MultipartFile 多文件上传的应用

    公司的项目很多地方要用到文件上传,以前的上传主要是用apache的fileupload ,使用的感受并不太好.今天试了试spring的MultipartFile,感觉还不错,封装的比较简洁. 当然,中 ...

  4. .14-浅析webpack源码之Watchpack模块

    解决掉了最头疼的DirectoryWatcher内部实现,这一节可以结束NodeWatchFileSystem模块. 关于watch的应用场景,仔细思考了下,这不就是热重载的核心嘛. 首先是监视文件, ...

  5. IdentityServer4 中文文档 -4- (简介)打包和构建

    IdentityServer4 中文文档 -4- (简介)打包和构建 原文:http://docs.identityserver.io/en/release/intro/packaging.html ...

  6. Owin 自寄宿 asp.net web api

    http://owin.org/ Owin 定义了webserver和webapplication之间的标准接口,目标就是为了解耦webapplication对webserver的依赖, 就是说以后可 ...

  7. 数据机构-折半查找法(二分查找法)-Python实现

    Python实现二分查找法(基于顺序表) class List: elem=[] #存储顺序表元素 last=-1 #设置初始为-1 SeqList = List() #创建一个顺序表 print(& ...

  8. groovy使用范型的坑

    java的范型 Map<String, Integer> map = new HashMap<>(); map.put("a", 100); map.put ...

  9. C#多线程——同步

    多个线程(不仅仅局限于相同进程)如果需要访问相同的可变资源的话就可能需要考虑到线程同步的手段.CPU的线程和进程管控我这里就不去说了,计算机组成原理里面的东西 那么既然要让线程的步调一致,那么我们首先 ...

  10. php+smarty轻松开发微社区/微论坛

    今天我们就来分析微社区的基本功能构成吧.首先,每个论坛最主要的是会员在对应的版块下发帖,或者在感兴趣的主题帖下跟帖盖楼.其次,会员能时时看到帖子或版块的基本信息.所以主要大块是: 前台:会员的注册登录 ...