pythonselenium浮动框_python-selenium -- 弹出框处理

弹出框有两种:页面弹出框(可定位元素能操作)、Windows弹出框(不能直接定位)

一、页面弹出框

等待弹出框出现之后,定位弹出框,操作其中元素

如:

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_10__footerULoginBtn"

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()

二、Windows弹出框

使用 driver.switch_to.alert  切换到Windows弹出框

Alert类提供了一系列操作方法:

accept() 确定

dismiss() 取消

text() 获取弹出框里面的内容

send_keys(keysToSend) 输入字符串

如:

#1:定位alert弹出框

#点击页面元素,触发alert弹出框

driver.find_element_by_xpath('//*[@id="alert"]').click()

time.sleep(3)

#等待alert弹出框可见

WebDriverWait(driver,20).until(EC.alert_is_present())

#从html页面切换到alert弹框

alert = driver.switch_to.alert

#获取alert的文本内容

print(alert.text)

#接受--选择“确定”

alert.accept()

#2:定位confirm弹出框

driver.find_element_by_xpath('//*[@id="confirm"]').click()

time.sleep(3)

WebDriverWait(driver,20).until(EC.alert_is_present())

alert =driver.switch_to.alert

print(alert.text)

# 接受--选择“取消”

alert.dismiss()

#3:定位prompt弹出框

driver.find_element_by_id("prompt").click()

time.sleep(3)

WebDriverWait(driver,20).until(EC.alert_is_present())

alert =driver.switch_to.alert

alert.send_keys("jaja")

time.sleep(5)

print(alert.text)

# alert.dismiss()

alert.accept()

自动化测试基础篇--Selenium弹出框alert

摘自https://www.cnblogs.com/sanzangTst/p/7685304.html   不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认 ...

selenium - 弹出框操作

# 6. 弹出框操作 # 6.1 页面弹出框操作# 页面弹出框 是一个html页面的元素,由用户在页面的操作触发弹出# (1)执行触发操作之后,等待弹出框出现之后,# (2)再定位弹出框中的元素并操作 ...

Python+Selenium笔记(九):操作警告和弹出框

#之前发的 driver.switch_to_alert() 这句虽然可以运行通过,但是会弹出警告信息(这种写法3.x不建议使用)  改成 driver.switch_to.alert就不会了. (一 ...

python + selenium webdriver 通过python来模拟鼠标、键盘操作,来解决SWFFileUpload调用系统底层弹出框无法定位问题

Webdriver是基于浏览器操作的,当页面上传文件使用的是flash的控件SWFFileUpload调用的时候,调用的是系统底层的文件选择弹出框 这种情况,Webdriver暂时是不支持除页面外的其 ...

Java 学习笔记 (二) Selenium WebDriver Java 弹出框

下面这段实例实现了以下功能: 1. profile使用用户本地电脑上的 (selenium 3有问题.因为selenium 3把profile复制到一个temp文件夹里,但并不复制回去.所以每次打开仍 ...

自动化测试-12.selenium的弹出框处理

前言 不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决. alert\confirm\prompt ...

selenium+python自动化95-弹出框死活定位不到

前言 部分小伙伴学了selenium的alert后,就不管啥弹出框都去用alert,这是行不通的,看到弹出框,先要确定是不是alert,是才能用,不是的话肯定不能用. 有些弹出框是div层,这种跟平常 ...

Selenium入门10 弹出框的处理 switch_to.alert

三种弹出框alert(一个按钮),confirm(两个确认,取消),prompt(两个按钮+输入框). 切换到弹框: switch_to_alert()  新版的selenium用:  brows ...

Selenium Webdriver弹出框的种种类型

普通弹出框 div 一般这种 弹出框都属于dom的一部分,我们查看一下页面源码就可以定位到改弹出框了,然后定位下右上角的那个关闭, 这里有id,所以很方便通过 dr.findElement(By.id ...

随机推荐

ReactNative新手学习之路04 组件化开发轮播图swiper支持安卓和IOS

react native 新手之路04 组件化开发轮播图swiper支持安卓和IOS npm install react-native-carousel --save git 地址Properties ...

使用百度地图api接口获取公交地图路线和车站

需要在页面文件中引用百度的js @*

现在发行商都需要cp们做热更新,而对于unity制作的游戏来讲,这个恐怕是个噩梦,而项目已经进行到中后期,确实很麻烦,有UniLua,但是如果全部手动解决恐怕上不了线了工作量太大,初步设想如果做一个基 ...

MVC4 + WebAPI + EasyUI + Knockout-授权代码维护

我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(四)授权代码维护 一.前言 权限系统设计中,授权代码是用来控制数据访问权限的.授权代码说白了只是一树型结构的数据 ...

XAF-BI.Dashboard模块概述 web/win

Dashboard模块介绍了在ASP.NET XAF 和 WinForms 应用程序中简单的集成 DevExpress Dashboard控件的方法. 其实不仅仅是控件,利用了现有的XAF数据模型,这 ...

redis的常用命令

键值得相关命令: keys * 返回满足给定patternd的所有key exists 确认一个key是否存在 del 删除一个key expire 设置一个key的过期时间 ttl 查看过期时间还有 ...

Python 中的继承、多态和封装

涉及问题: Python 中如何实现多继承,会有什么问题? Python 中的多态与静态方法有什么区别? 答案要点如下: Python 中的继承,就是在定义类时,在括号中声明父类,简单示例如下: cl ...

百度tn劫持解决办法

最近用右键进行百度搜索的时候总是会跳转到 tn=99135173这类的小尾巴,使得搜索失败,十分恶心,这种广告劫持的手段十分高明隐蔽,很难发觉.开始以为是dns劫持或者是电脑中毒了,更换了几个dns, ...

L2范数的相关求解

https://blog.csdn.net/u010725283/article/details/79212762

你可能感兴趣的:(pythonselenium浮动框_python-selenium -- 弹出框处理)