web自动化 -- 浏览器窗口切换
切换浏览器窗口


示例:
from time import sleep
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC url = "https://www.baidu.com"
search_box = '//*[@id="kw"]'
click_search = '//*[@id="su"]' driver = webdriver.Chrome() # 定义 driver
driver.implicitly_wait(10) # 设置隐式等待,作用域是全局 try:
driver.get(url)
driver.find_element_by_xpath(search_box).send_keys('有道云') # 输入搜索关键字
driver.find_element_by_xpath(click_search).click() # 搜索 # 窗口切换
# setup1:获取所有窗口的句柄
window_handle_list = driver.window_handles
print('最开始的句柄列表:', window_handle_list) # 当前所在的窗口句柄
now_window = driver.current_window_handle # 打开新窗口
driver.find_element_by_xpath('//*[text()="官方"]').click()
sleep(0.5) # 打开新窗口就得 sleep() 一下 # setup2:等待新窗口打开
WebDriverWait(driver, 5).until(EC.new_window_is_opened(window_handle_list)) # setup3:获取新窗口打开后的 所有窗口的句柄
opened_window_handle_list = driver.window_handles
print('打开新窗口的句柄列表:', opened_window_handle_list) # setup4:让句柄进入新窗口
driver.switch_to.window(opened_window_handle_list[-1]) # 列表的 -1下标 就是最后一个,最后一个自然是最新打开的窗口 # # 在新窗口内的其他操作
driver.find_element_by_xpath('//*[@id="form-realname"]').send_keys(13290021660)
sleep(1) # setup5:切换回其他窗口
driver.switch_to.window(opened_window_handle_list[0]) # 列表的 0下标 就是最前一个窗口 sleep(1)
driver.quit()
except Exception as e:
driver.quit()
raise e
web自动化 -- 浏览器窗口切换的更多相关文章
- web自动化浏览器chrome和驱动chromedriver
1.web自动化下载浏览器和对应的浏览器驱动,以谷歌浏览器为例 电脑上安装谷歌浏览器,查看谷歌浏览器的版本,输入chrome://settings/help 2.chromedriver国内镜像地址h ...
- selenium常用的API(六)浏览器窗口切换
当使用selenium webdriver进行自动化测试打开多个窗口的时候,可能需要在不同的窗口间进行切换,webdriver提供的获取浏览器窗口句柄.切换句柄的方法如下: 获取当前窗口句柄 driv ...
- selenium操作浏览器-窗口切换
package seleniumLearn1; import java.util.Set; import java.util.concurrent.TimeUnit; import org.openq ...
- Web自动化之iframe切换
一.如何判断元素是否在iframe中 选中要操作的元素,通过下方的父节点查看是否存在iframe,存在则元素在iframe,需要切换至iframe中进行元素的操作 二.iframe切换方式一 1.方式 ...
- Web自动化-浏览器驱动chromedriver安装方法
1.python中安装好selenium包 pip install selenium 2.根据以下驱动对照表下载Chrome对驱动 chromedriver版本 支持的Chrome版本 v2.3 ...
- 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...
- python selenium + web自动化,切换到新的窗口,元素定位不到?
问题描述: 自动化由首页切换到分页面,打开了一个新的窗口,不过,定位不到这个窗口的元素,通过开发者工具是可以查到这个元素的 原因是: 因为窗口句柄还停留在上一个页面,所以导致无法定位元素.报错 &qu ...
- Helium文档12-WebUI自动化-go_to在当前的Web浏览器窗口中打开指定的URL
前言 go_to在当前的Web浏览器窗口中打开指定的URL 入参介绍 url def go_to(url): """ :param url: URL to open. : ...
- 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...
随机推荐
- python黑帽子之udp客户端
将上文的TCP客户端简单修改便能得到UDP客户端 import socket target_host = "127.0.0.1" target_port = 80 client = ...
- ABP(ASP.NET Boilerplate Project)快速入门
前言 这两天看了一下ABP,做个简单的学习记录.记录主要有以下内容: 从官网创建并下载项目(.net core 3.x + vue) 项目在本地成功运行 新增实体并映射到数据库 完成对新增实体的基本增 ...
- node+ajax实战案例(6)
8.删除客户 8.1.发送id到后台 删除用户信息比较简单,只需要把对应行的id发送到后台就可以了 oTable.onclick = function (ev) { var ev = ev || ev ...
- 循环&&数组&&方法&&面向对象
day03 数值的默认值 类型 初始化的值 byte,short,int,long 0 float,double 0.0 char 空格 boolean false 引用类型 null JVM的内存 ...
- 运行python出现 SyntaxError: Non-ASCII character '\xe6' in file /Users/finup/Documents/python_project/test.py 解决办法
使用pycharm运行程序时出现以下错误 这个错误主要是由于python2的编码默认是ASCII,你的文件里有中文就必须要用utf-8编码,只要在文件需要在文件开头标注 #coding=utf-8如下 ...
- Oracle查询表空间使用率很慢
Oracle查询表空间使用率很慢 问题描述 执行查询表空间的语句,需要接近2min的时间才能执行完成. 以前也在其他客户的生产库遇到过一样的情况,当时是由于回收站的内容过多引起的. 不过这次的情况却不 ...
- 02 . 分布式存储之FastDFS 高可用集群部署
单节点部署和原理请看上一篇文章 https://www.cnblogs.com/you-men/p/12863555.html 环境 [Fastdfs-Server] 系统 = CentOS7.3 软 ...
- C语言学习笔记第一章——开篇
本文章B站有对应视频 (本文图片.部分文字引用c primer plus) 什么是C语言 顾名思义,c语言是一门语言,但是和我们所讲的话不同,它是一门编程语言,是为了让机器可以听懂人的意思所以编写的一 ...
- __FILE__和__DIR__的用法
dirname(__FILE__)由两部分组成, __FILE__ 魔术变量和 dirname() 函数.__FILE__是当前脚本的绝对路径,通过 dirname() 函数后,就可以获得脚本所在目录 ...
- 数据可视化之powerBI入门(十)认识Power BI的核心概念:度量值
https://zhuanlan.zhihu.com/p/64150720 本文学习PowerBI最重要的概念:度量值 初学Power BI一般都会对度量值比较困惑,毕竟对长期接触Excel的人来说, ...