selenium Webdriver多窗口切换
应用场景:
代码如下:
#导包
from selenium import webdriver
from time import sleep
#定义浏览器句柄,打开百度网址
driver=webdriver.Chrome()
driver.implicitly_wait(10)
url="http://www.baidu.com"
driver.get(url)
#窗口最大化
driver.maximize_window()
#获取百度搜索窗口的句柄
seach_windows=driver.current_window_handle
#打印百度搜索窗口的句柄
print(seach_windows)
#点击右上角"登录"按钮
driver.find_element_by_link_text("登录").click()
#在弹窗中点击"立即注册"按钮
driver.find_element_by_xpath('//*[@id="passport-login-pop-dialog"]/div/div/div/div[4]/a').click()
#获取当前所有打开窗口的句柄
all_handles=driver.window_handles
#进入注册窗口
for newhandle in all_handles:
if newhandle!=seach_windows:
driver.switch_to.window(newhandle)
print('now register window!')
sleep(1)
#输入用户名:username12334
driver.find_element_by_id("TANGRAM__PSP_4__userName").send_keys("username12334")
#输入手机号:18877776666
driver.find_element_by_id("TANGRAM__PSP_4__phone").send_keys("")
#输入密码:password
driver.find_element_by_id("TANGRAM__PSP_4__password").send_keys("password")
#点击获取语音验证码
driver.find_element_by_id("TANGRAM__PSP_4__verifyCodeSend").click()
#输入验证码:123456
driver.find_element_by_id("TANGRAM__PSP_4__verifyCode").send_keys("")
#勾选(阅读并接受《百度用户协议》及《百度隐私权保护声明》)
driver.find_element_by_id("TANGRAM__PSP_4__isAgree").click()
#点击"注册"按钮
driver.find_element_by_id("TANGRAM__PSP_4__submit").click()
#回到百度搜索窗口
for newhandle in all_handles:
if newhandle==seach_windows:
driver.switch_to.window(newhandle)
print('now seach window!')
sleep(1)
#关闭登录/立即注册的弹窗
driver.find_element_by_id("TANGRAM__PSP_4__closeBtn").click()
#点击百度输入框,输入"selenium webdriver"
driver.find_element_by_xpath('//input[@id="kw"]').send_keys("selenium webdriver")
#点击"百度一下"按钮
driver.find_element_by_xpath('//input[@id="su"]').click()
sleep(2)
#关闭所有窗口,退出浏览器,结束本次脚本任务
driver.quit()
selenium Webdriver多窗口切换的更多相关文章
- selenium多个窗口切换
浏览器里面支持多窗口打开,例如这样: html里面写了: target="_blank" 造成新打开一个窗口,但是selenium不会自动跳转到新的串口,需要自己切换: # 你打开 ...
- selenium操作浏览器-窗口切换
package seleniumLearn1; import java.util.Set; import java.util.concurrent.TimeUnit; import org.openq ...
- selenium入门14 窗口切换
窗口切换: 当前窗口句柄 current_window_handle 所有的窗口句柄 window_handles 切换窗口 switch_to_window() #coding=utf-8 #切换窗 ...
- selenium中三大窗口切换
我们在做UI自动化时,不得不会遇到一些窗口跳转与弹框,在这种的时候如果不进行切换的话,继续执行脚本必然会报错,所以我们就需要用到切换窗口的方法. selenium中主要是三种窗口 Windows窗口 ...
- Selenium:多窗口切换(获取窗口句柄handle)
我们在操作网页的时候,点击有些页面的链接,会重新打开一个窗口,我们要在新页面上操作,就得切换窗口 比如在百度首页的登录框点击注册,会重新打开一个注册的新页面,要在新页面注册,就得先切进新页面 那我们怎 ...
- python+selenium之多窗口切换
#打开浏览器driver = webdriver.Firefox()driver.get(url)#获取当前窗口now_handle=driver.current_window_handle # 获取 ...
- 使用python处理selenium中的窗口切换问题
# 获取当前页面的句柄 ch = self.driver.current_window_handle # 获取所有句柄 ah = self.driver.window_handles # 切换句柄 s ...
- selenium测试(Java)--多窗口切换(十三)
selenium测试(Java)--多窗口切换(十三) 如果遇到点击按钮或链接后出现新窗口的情况,就需要使用窗口切换的方法. 本例中就是先打开百度搜索界面,然后利用js打开一个百度新闻界面,然后通过s ...
- 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...
随机推荐
- 微信APP支付-java后台实现
不说废话,直接上代码 先是工具类(注意签名时要排序): import java.io.BufferedReader; import java.io.ByteArrayInputStream; impo ...
- 百道Python面试题实现,搞定Python编程就靠它
对于一般的机器学习求职者而言,最基础的就是掌握 Python 编程技巧,随后才是相关算法或知识点的掌握.在这篇文章中,我们将介绍一个 Python 练习题项目,它从算法练习题到机试实战题提供了众多问题 ...
- 《java编程思想》对象导论
1.抽象过程 所有编程语言都提供抽象机制.可以认为,人们所能够解决的问题的复杂性直接取决于抽象的类型和质量,所谓的'类型'是指“所抽象的是什么?”汇编语言是对底层机器的轻微抽象. java的基本 特性 ...
- MATLAB 概率论题
1. 用模拟仿真的方法求解 clc clear tic n=0; N=100000; for ii=1:N b='MAXAM'; %字符串格式 a=randperm(5); % b=[b(a(1)), ...
- C++中的各种进制转换函数汇总
C++中的各种进制转换函数汇总 1.在C中,按指定进制格式输出如下: #include <iostream> #include <cstdio> using namespace ...
- python常用模块 以及第三方导入
python常用模块 1模块的分类 标准模块(内置模块)( 标准库 )300 第三方模块 18万 pip install 直接通过pip安装 软件一般会被自动安装你python安装目录的这个子目录里 ...
- 记一次Task抛异常,调用线程处理而引发的一些随想
记一次Task抛异常,调用线程处理而引发的一些随想 多线程调用,任务线程抛出异常如何在另一个线程(调用线程)中捕获并进行处理的问题. 1.任务线程在任务线程执行语句上抛出异常. 例如: private ...
- NKOJ3751 扫雷游戏
问题描述 有一款有趣的手机游戏.棋盘上有n颗地雷,玩家需要至少扫掉其中的k颗雷.每一步,玩家可以用手指在手机屏幕上划一条直线,该直线经过的地雷都会被扫除掉.问,最少需要划几次就能扫除k颗以上的地雷? ...
- Java工程中如何读取配置文件中参数信息
Java中读取配置文件中参数: 方法一:通过JDK中Properties来实现对配置文件的读取. Properties主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很 ...
- 使用maven构建 ssm项目 tomcat7插件运行报错, Invalid byte tag in constant pool: 60
错误日志: [WARNING] [WARNING] Some problems were encountered while building the effective settings[WARNI ...