selenium文件上传和弹框处理
文件上传
input 标签可以直接使用send_keys(文件地址)上传文件
用法:
el = driver.find_element_by_id('上传按钮id')
el.send_keys("文件路径+文件名")
demo, 百度图片上传为例子
from base import *
class TestUpload(Base):
def test_upload(self):
url = 'https://image.baidu.com/'
self.driver.get(url)
self.driver.find_element_by_xpath("//img[@class='st_camera_off']").click()
self.driver.find_element_by_id("stfile").send_keys("D:\\my_project\\git_deve\\development\\img\\雪球自选设置测试用例.png") # 发送文件
time.sleep(3)
if __name__ == '__main__':
pytest.main(["-vs", "test_upload.py"])
弹框处理机制
操作alert常用方法:
- switch_to.alert(): 获取当前页面上的警告框
- text: 返回alert / confirm / prompt 中的文字系信息
- accept() : 接受现有警告框
- dismiss(): 解散现有警告框
- send_keys(KeysToSend) : 发送文本至警告框。 KeysToSend: 将文本发送至警告框
测试案例:
- 打开网页 https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable
- 操作窗口右侧页面,将元素1拖拽到元素2
- 这时候会有一个alert弹框,点击弹框中的确定
- 然后再按点击运行
- 关闭网页
from base import *
from selenium.webdriver import ActionChains
class TestUpload(Base):
@pytest.mark.skip
def test_upload(self):
url = 'https://image.baidu.com/'
self.driver.get(url)
self.driver.find_element_by_xpath("//img[@class='st_camera_off']").click()
self.driver.find_element_by_id("stfile").send_keys("D:\\my_project\\git_deve\\development\\img\\雪球自选设置测试用例.png") # 发送文件
time.sleep(3)
def test_la(self):
url = "https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable"
self.driver.get(url)
self.driver.switch_to.frame("iframeResult") # 可以参考 https://www.cnblogs.com/c-keke/p/14942162.html
draggable = self.driver.find_element_by_xpath("//div[@id='draggable']") # 拿起
droppable = self.driver.find_element_by_xpath("//div[@id='droppable']") # 放下
action = ActionChains(self.driver) # 初始化动作链, 可以参考:https://www.cnblogs.com/c-keke/p/14928477.html
action.drag_and_drop(draggable, droppable).pause(2).perform()
time.sleep(1)
self.driver.switch_to.alert.accept() # 点击确定这个弹出框
self.driver.switch_to.default_content() # 返回默认的节点
self.driver.find_element_by_xpath("//button[contains(text(),'点击运行')]").click()
if __name__ == '__main__':
pytest.main(["-vs", "test_upload.py"])
完。
selenium文件上传和弹框处理的更多相关文章
- Selenium处理文件上传、弹框
一.文件上传 上传标签是input时,可以直接使用send_keys(文件path)的方法来进行上传 二.弹框处理 页面操作中,有时会遇到JavaScript生成的alert.confirm以及pro ...
- Python Selenium 文件上传之SendKeys
昨天写了Web 文件下载的ui自动化,下载之后,今天就要写web 文件上传的功能了. 当然从折腾了俩小时才上传成功.下面写一下自己操作的步骤 首先网上说的有很多方法 如 input 标签的最好做了,直 ...
- Python Selenium 文件上传之Autoit
今天补充一种文件上传的方法 主要是因为工作中使用SendKeys方法不稳定,具体方法见: Python Selenium 文件上传之SendKeys 这种方法直接通过命令行执行脚本时没有问题,可以成功 ...
- selenium 文件上传
一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决: 另外一种非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方 ...
- 自动化测试基础篇--Selenium文件上传send_keys
摘自https://www.cnblogs.com/sanzangTst/p/8358165.html 文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单. 一般分两个场景:一 ...
- selenium -文件上传的实现 -对于含有input element的上传
使用selenium做自动化时,我们经常会遇到的一个让人头疼的问题就是文件上传. 问题的难点在于selenium无法识别并操作Windows窗口,若我们可以绕过弹出框直接把文件信息上传给选择按钮,难点 ...
- Selenium文件上传
转自:https://www.cnblogs.com/miaojjblog/p/9679915.html Web上本地上传图片,弹出的框Selenium是无法识别的,也就是说,selenium本身没有 ...
- selenium文件上传的实现
一.对于上传文件, 从手动操作我们可以看出, 需要对window 窗体进行操作, 而对于selenium webdriver 在这方面应用就受到了限制. 但是, 庆幸的是, 对于含有input ele ...
- Java实现文件上传-按钮弹出上传页面
转自: https://blessht.iteye.com/blog/1405057 最近自己在做一个小系统玩的时候涉及到了文件的上传,于是在网上找到Java上传文件的方案,最后确定使用common- ...
- Selenium文件上传问题
随机推荐
- 使用.pem密钥文件登录服务器
一.使用puttygen工具将.pem文件转成.ppk文件 Load时,需注意选择文件类型为All Files 二.使用secureCRT工具登录 点击properties...按钮,上传ppk文件, ...
- 关于Windows10纯净启动的相关修改流程
关于纯净启动的相关流程 自动登录 打开命令提示符运行control userpasswords2后回车 在弹出的用户账户窗口中,取消勾选"要使用本计算机,用户必须输入用户名和密码" ...
- MySQL count(*) 和 count(字段) 区别
count(字段)不会取Null的 select count(*) from test01 7条 select count(0) from test01 ...
- Windows下安装mysql的操作步骤
免安装版的Mysql MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的 标准化语言,其特点为体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,在 Web 应 ...
- python 中倒是什么事可哈希的意思那?
可哈希对象 python中的hashable(可哈希的)是什么意思 2018年12月29日 23:29:36 shangyj17 阅读数:511 不严谨但易懂的解释: 一个对象在其生命周期内,如果 ...
- Vue插件开发,全局插件和按需加入插件
年前手下事情少,找了一个下午研究了一下Vue插件开发,首先要感谢B站的前端小野森森-2,借鉴了他的视频,自己也写了一下.把过程记录下来. 首先用vite建一个空项目. 然后新建modules文件夹,和 ...
- 抽风的Maven、maven插件及配置
Idea 配合 Maven使用中有时遇到莫名奇妙的问题,又莫名奇妙的恢复正常.整理如下: 1.删除系统环境变量Maven_Home,只需在IDEA中指定Maven及settings.xml即可. 有时 ...
- ovs-dpdk:revalidator源码解析
revalidator是做什么的?需要知道哪些东西? 有关于revalidator需要弄明白的是以下三个问题: 通过ovs-vsctl list open_vs可以看到other_config里面有两 ...
- 如何基于Security框架兼容多套用户密码加密方式
一.说明 当已上线的系统存在使用其他的加密方式加密的密码数据,并且密码 不可逆 时,而新的数据采用了其他的加密方式,则需要同时兼容多种加密方式的密码校验. 例如下列几种情况: 旧系统用户的密码采用了 ...
- 刷爆 LeetCode 周赛 337,位掩码/回溯/同余/分桶/动态规划·打家劫舍/贪心
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 上周末是 LeetCode 第 337 场周赛,你参加了吗?这场周赛第三题有点放水,如果 ...