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自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...
随机推荐
- 主机Redis服务迁移到现有Docker Overlay环境
记录最后一次对中型2C企业级项目的容器化改造 hello, 好久不见,之前文章记录了一个实战的2C分布式项目的改造过程,结果如下: 其中Redis并未完成容器化改造(目前是主机单点),本文记录将Red ...
- Python 简明教程 --- 14,Python 数据结构进阶
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那很可能是用错算法了. -- Carig Zerouni 目录 前几节我们介 ...
- Elasticsearch从入门到放弃:分词器初印象
Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来 ...
- mysql根据一张表更新另一张表数据
UPDATE channelcountry, appywproducts SET channelcountry.ChannelName = appywproducts.YWNameCN WHERE c ...
- lodash - slice
稀疏数组和密集数组 稀疏数组 Sparse arrays 一般来说,JavaScript 中的数组都是稀疏数组-它们可以拥有空槽,所谓空槽,指的就是数组的某个位置没有任何值,既不是 undefined ...
- 在 Visual Studio 市场中发布项目扩展
比较不错的开源项目中,尤其是类似于AbpNext这种级别的项目,我们都想要快速的尝试,如何提供快速给开发者提供模板是我们的一大难题.不过在VisualStudio中并没有这么难. 一.本地发布插件 就 ...
- 平常我们是如何区分css中class和id之间有什么区别的?
我们平常在用DIV+CSS制作html网页页面时,常会用到class 和id来选择调用CSS样式属性.对学习CSS的新手来说class和id可能比较模糊,同时不知道什么时候该用class,什么时候又用 ...
- 网页开发中利用CSS以图换字的多中实现方法总汇
在h1标签中,新增span标签来保存标题内容,然后将其样式设置为display:none <style> h1 { width: 64px; height: 64px; backgroun ...
- CountDownLatch 线程工具类
CountDownLatch:概念是,允许一个或多个线程等待其他线程完成操作: 在线程基础知识中,学习过线程的join方法,当前线程阻塞等待join线程执行完毕才能执行: 测试代码如下: public ...
- return 关键字
return关键字:1.使用范围:使用在方法体中2.作用: ① 结束方法 ② 针对于返回值类型的方法,使用"return 数据"方法返回所要的数据.3.注意点:return关键字后 ...