selenium-对话框处理
弹出框有两种:页面弹出框(可定位元素能操作)、Windows弹出框(不能直接定位)
1. 页面弹出框
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.maximize_window()
#点击百度登录按钮
driver.find_element_by_xpath('//*[@id="u1"]//a[@name="tj_login"]').click()#等待百度登录弹出框中 要出现的元素可见
ele_id = "TANGRAM__PSP_11__footerULoginBtn" #登陆按钮的元素id
param = (By.ID,ele_id)
#元素可见时,再进行后续操作
WebDriverWait(driver,10).until(EC.visibility_of_element_located(param))driver.find_element_by_id(ele_id).click()
time.sleep(5)
driver.quit()
2. window弹出框
2.1 基本弹出框
JavaScript中有三种基本的消息:警告框、确认框、提示框;分别使用alert()、confirm()、prompt()弹出;形式依次如下:
- alter提示框,只有一个确定按钮
- confirm提示框,存在确定和取消按钮
- prompt提示框,可输入文本
对于此三种的对话框,处理方法如下:
# 定义浏览器
browser = webdriver.Firefox()
# 打开url
browser.get(url)
# 切换至消息框,适用于alert/confirm/prompt
alert_box = browser.switch_to.alert
# 点击消息框的确认按钮,返回值为true。适用于alert/confirm/prompt
alert_box.accept()
# 点击消息框的取消按钮,返回值为False。适用于confirm/prompt
alert_box.dismiss()
# 向输入框发送内容,适用于prompt
alert_box.send_keys("msg")
# 获取输入框内容,适用于prompt
alert_box.text
2.2 取巧方法-切换至激活的按钮
取巧方法----使用switch_to.active_element确认按钮然后点击
对于处于激活状态的按钮,我们我们可以使用switch_to.active_element获取“OK”对象,然后进行点击。
实现代码如下:
# 切换至激活状态控件
element = browser.switch_to.active_element
# 调用click()方法点击该按钮
element.click()
selenium-对话框处理相关推荐
- [python爬虫] Selenium高级篇之窗口移动、弹出对话框自登录
在我们使用Selenium Python制作自动爬虫和网页自动测试的时候,通常会遇到弹出新的窗体或对话框的时候,此时你捕获的窗体已经被打断,从而干扰你的爬虫. 那怎么解决这个问题呢? 本篇文章主要记录 ...
- Selenium对于对话框alert,confirm,prompt的处理
html 源码: <html> <head> <title>Alert</titl ...
- python selenium 处理弹窗_python+selenium 抓取弹出对话框信息
抓取弹出对话框信息,困挠了我很久,我百度了很久,一直没有找到我想要的内容.最近学习到了. 有两种方法: 1.driver.switch_to.alert.text 2.result = EC.aler ...
- python 弹出对话框_python+selenium 抓取弹出对话框信息
抓取弹出对话框信息,困挠了我很久,我百度了很久,一直没有找到我想要的内容.最近学习到了. 有两种方法: 1.driver.switch_to.alert.text 2.result = EC.aler ...
- python win10 捕获 弹出窗口_[python爬虫] Selenium高级篇之窗口移动、弹出对话框自登录...
在我们使用Selenium Python制作自动爬虫和网页自动测试的时候,通常会遇到弹出新的窗体或对话框的时候,此时你捕获的窗体已经被打断,从而干扰你的爬虫. 那怎么解决这个问题呢? 本篇文章主要记录 ...
- python selenium下载对话框_Selenium+Python:下载文件(Firefox 和 Chrome)
引自 https://blog.csdn.net/Momorrine/article/details/79794146 1. 环境 操作系统 Win10 IDE Eclipse (Oxyg ...
- TestNG:org.openqa.selenium.os.UnixProcess$SeleniumWatchDog错误
在TestNG运行自动化测试用例的时候,浏览器FireFox正确打开,可是在测试用例运行完成后,我调用的是webdriver.quit()关闭程序的,结果却报以下错误: Sep 25, 2014 4: ...
- java fx alert_javaFx:使用弹出对话框 Alert
javaFx8 自带的对话框非常好用,类似的使用方式如下: /** * 弹出一个通用的确定对话框 * @param p_header 对话框的信息标题 * @param p_message 对话框的信 ...
- Selenium 2.0的由来及设计架构(三)
IE Driver IE 是一个很有意思的浏览器,它是由一些协同工作的COM接口构建成的,这一直延伸到Javascript引擎,常见的Javascript变量实际参考了隐含的COM实例.Javascr ...
- Selenium Web 自动化 - Selenium常用API
Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作 1.1 用webdriver打开一个浏览器 1.2 最大化浏览器&关闭浏 ...
最新文章
- Activiti 笔记
- 微信小程序点击页面tab栏切换
- Kotlin实战指南十:let、apply、with、run
- 剑指offer之21-25题解
- Java自带的线程池ThreadPoolExecutor详细介绍说明和实例运用
- python转go感觉难_读《我为什么从python转向go》的一些感受
- 机器视觉技术在表面缺陷检测方面的发展趋势
- javascript代码总结
- Mybatis Plus逻辑删除
- java 扫描包框架_java – 在Android中实现类似Spring的包扫描
- 递归法 最大公倍数 斐波那契数列 数组插入排序改递归
- 15.凤凰架构:构建可靠的大型分布式系统 --- 服务网格
- ios微信上无法自动播放音频的情况
- python大列表_Python列表操作大全(非常全)
- 论文翻译(二) CRNN 基于图像序列的识别的识别的端到端可训练神经网络及其在场景文字识别的应用
- 绘制confusion matrix的R实现
- graphpad prism横坐标怎么设置不显示数值_Graphpad Prism 的 4 个隐藏技能助你轻松发表 SCI...
- 一个故事讲清楚NIO
- android Gradle 教程
- registration status: 204
热门文章
- 18年MES实施经验工程师总结,mes实施的那些难点和风险
- 为什么电脑总是发出“咚咚咚”的声音
- 手机安全卫士开发系列(6)——程序主界面
- 输入一个字符,判断它如果是小写字母输出其对应的大写字母,如果是大写字符输出其对应的小写字母 ,如果是数字则直接输出数字,不是上述情况输出other。
- win11中Python环境配置
- 程序员的健康作息时间 该看看啊
- 「企业架构」企业架构概述
- d3.js 股权结构图
- 「宋希仁」‘九州-衷幗’傳統倫理學的特點之水哥诵読文稿2019年7月10日 星期三
- 2007九寨黄龙游[风景篇]