首页 > 其他分享 >干货 | web自动化总卡在文件上传和弹框处理上?

干货 | web自动化总卡在文件上传和弹框处理上?

时间:2022-09-05 14:01:38浏览次数:101  
标签:web keys driver 点击 send alert 总卡 弹框

⬇️ 点击“下方链接”,提升测试核心竞争力!

>>更多技术文章分享和免费资料领取

在有些场景中,需要上传文件,而 Selenium 无法定位到弹出的文件框,以及网页弹出的提醒。这些都是需要特殊的方式来处理。

input 标签使用自动化上传,先定位到上传按钮,然后 send_keys 把路径作为值给传进去.
如图所示,是企业微信文件上传的页面 定位到标签为 input,type 为 file 的元素信息,然后使用 send_keys 把文件路径作为值给传进去。

driver.find_element(By.CSS_SELECTOR, "#js_upload_input")\
    .send_keys("./hogwarts.png")

在页面操作中有时会遇到 JavaScript 所生成的 alert、confirm 以及 prompt 弹框,可以使用switch_to.alert()方法定位到。然后使用 text、accept、dismiss、send_keys 等方法进行操作。

  • switch_to.alert():获取当前页面上的警告框。
  • text:返回 alert、confirm、prompt 中的文字信息。
  • accept():接受现有警告框,即点击确定。
  • dismiss():解散现有警告框,即点击取消。
  • send_keys(keysToSend):发送文本至警告框。keysToSend:将文本发送至警告框。

输入一段文本点击比如提交按钮,会弹出确认内容的弹框,这种场景可以使用下面的方式处理:

"""Alert弹窗获取文本与确认操作"""
driver.get("http://sahitest.com/demo/alertTest.htm")
driver.find_element_by_name("b1").click()
#添加显示等待,等待弹框的出现
WebDriverWait(driver, 5, 0.5).until(EC.alert_is_present())
#切换到弹框
alert = driver.switch_to.alert
#打印弹框的文本
print(alert.text)
#点击确定
alert.accept()
#不点击确定,解除弹框
alert.dismiss()

""" Prompt 弹窗获取文本、输入内容、确认操作 """
driver.get("http://sahitest.com/demo/promptTest.htm")
driver.find_element_by_name("b1").click()
#添加显示等待,等待弹框的出现
WebDriverWait(driver, 5).until(EC.alert_is_present())
#切换到弹框
alert = driver.switch_to.alert
#向弹框输入一段文本
alert.send_keys('Selenium Alert弹出窗口输入信息')
#点击确定
alert.accept()

""" Comfirm弹窗获取文本、确认、取消操作 """
driver.get("http://sahitest.com/demo/confirmTest.htm")
driver.find_element_by_name("b1").click()
# 等待弹出窗口出现
WebDriverWait(driver, 5).until(EC.alert_is_present())
#切换到弹框
alert = driver.switch_to.alert
#点击确定
alert.accept()
#点击取消
alert.dismiss()

Web自动化中文件上传与弹框处理就先讲到这里啦,大家还想看什么内容的文章也可以留言告诉我们哦!

内容全面升级,4 个月 20+ 项目实战强化训练,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践,带你一站式掌握测试开发必备核心技能(对标阿里P6+,年薪50W+)!直推 BAT 名企测试经理,普遍涨薪 50%+!

⬇️ 点击“阅读原文”,提升测试核心竞争力!

原文链接

⬇️ 点击“下方链接”,提升测试核心竞争力!

>>更多技术文章分享和免费资料领取

标签:web,keys,driver,点击,send,alert,总卡,弹框
From: https://www.cnblogs.com/Tester-muller/p/16657885.html

相关文章

  • 干货 | Docker 还可以搭建Web服务器nginx ?这么宝藏的吗?
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取浏览器访问:https://hub.docker.com/_/nginx查看Nginx镜像详细信息。下载镜像,默认会下载last......
  • vue+websocket
    一、websocket是什么WebSocket通信协议于2011年被IETF定为标准RFC6455,并由RFC7936补充规范。WebSocketAPI也被[W3C]定为标准。它算是html5规范中的一个部分,算是一种协......
  • mosquitto配置protocol websockets无效,MQTT X或其他程序连接不上
    mqtt(mosquitto)配置protocolwebsockets必须配置socket_domain#mqtt协议配置,分为IP4和IP6两种,当前可以只配置启用一种listener18830.0.0.0socket_domainipv4protoco......
  • Javaweb10-javaweb其他知识点
    1、详解DefaultServlet与JspServlet参考博客-->详解DefaultServlet与JspServlet1.1DefaultServlet小结当服务端收到关于Servlet的请求之后交由自定义Servlet处理。当......
  • Web 开发人员的 10 个未来工作机会
    Web开发人员的10个未来工作机会Web开发者的需求与日俱增,但是否有机会?FutureofWebdevelopment市场上有许多Web开发人员工作可供具有必要技能的人使用。几乎每个......
  • zabbix服务web界面选项介绍
    目录zabbix服务web界面选项介绍monitoring选项service服务选项用户筛选服务来监控inventory清单选项主要做资产管理Reports报告选项查看各类信息Configuration配......
  • 2022 年全栈 Web 开发路线图
    2022年全栈Web开发路线图大家好!在今天的这篇文章中,我们将看看如何在2022年成为一名全栈Web开发人员。前端Web开发人员与前端一起工作,即通过使用HTML、CSS和......
  • Webrtc Video Simulcast
    titleWebRTCVideoSimulcastClient->PeerConnection:SetLocalDescriptionPeerConnection->SdpOfferAnswerHandler:SetLocalDescriptionSdpOfferAnswerHandler->SdpOffer......
  • Web 中的可访问性 (CSS)
    PhotobyKOBU代理商on不飞溅Web中的可访问性(CSS)这是我关于Web上的可访问性的第二篇文章。在里面上一篇文章,我在HTML中谈到了Web上的可访问性,而这一次,......
  • Rust & WebAssembly All In One
    Rust&WebAssemblyAllInOnerustwasmLearnhowtobuild,debug,profile,anddeployWebAssemblyapplicationsusingRust!了解如何使用Rust构建、调试、分析......