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自动化第三篇博 ...
随机推荐
- Xamarin.Forms读取并展示Android和iOS通讯录 - TerminalMACS客户端
Xamarin.Forms读取并展示Android和iOS通讯录 - TerminalMACS客户端 本文同步更新地址: https://dotnet9.com/11520.html https:// ...
- 北邮OJ103.反转单词 c++/java
103. 反转单词 时间限制 1000 ms 内存限制 65536 KB 题目描述 给出一句英文句子(只由大小写字母和空格组成,不含标点符号,也不会出现连续的空格),请将其中的所有单词顺序翻转 输入格 ...
- Log4Net读取XML配置文件及在代码中完成添加Logger操作
解决问题: 将log4net配置文件与app.config配置文件分开 手动读取log4net配置文件 手动创建logger 可将日志输出功能封装在类库中,应用程序引用时无需添加assembly引用及 ...
- ReentrantLock源码解析——虽众但写
在看这篇文章时,笔者默认你已经看过AQS或者已经初步的了解AQS的内部过程. 先简单介绍一下ReentantLock,跟synchronized相同,是可重入的重量级锁.但是其用法则相当不同,首先 ...
- python之线程和进程
进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握.最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂. 1:计算机的核心是CPU,它承担 ...
- JAVA——桌球游戏(动画)
跟着视频敲得 ,虽然不是自己的思路 ,不过对代码多了一点了解:涉及到继承类 主函数:创建一个BallGame对象,调用一个launchFrame函数 : launchFrame函数:严格来说是方法 , ...
- 150+行Python代码实现带界面的数独游戏
150行代码实现图形化数独游戏 Github地址,欢迎各位大佬们fork.star啥的,感谢: 今天闲着没事干,以前做过html+js版的数独,这次做个python版本的,界面由pygame完成,数独 ...
- sql mysql数据库导库 panda pymysql
mysql数据库 导入数据 1. panda 效率超高 对内存要求高 网络稳定性 # 读取文件 ratings_names = ['user_id', 'movie_id', 'ratings', ' ...
- WiX 自定义
WiX 允许用户做一些自定义操作 用户界面向导 对于安装界面,用户可以用自己的位图.图标和许可证文本替换默认的.它们的路径存储在变量中,您可以在命令行或直接在源代码中指定这些变量: <WixVa ...
- [vijos1782]借教室<线段树>
题目链接:https://vijos.org/p/1782 题意:一个区间1,n.m次操作,每次操作让l,r区间值减去d,当有任何一个值小于0就输出当前是第几个操作 这道题其实是没有什么难度的,是 ...