首页 > 其他分享 >19.⽂件上传、弹框处理

19.⽂件上传、弹框处理

时间:2023-12-29 14:01:08浏览次数:30  
标签:19 self driver 弹框 chrome alert 上传

⽂件上传的⾃动化

弹框处理机制

⽂件上传:

❖ input标签可以直接使⽤send_keys(⽂件地址)上传⽂件

❖ ⽤法:

❖ el = driver.find_element_by_id('上传按钮id')

❖ el.send_keys(”⽂件路径+⽂件名")

文件上传示例:

测试案例:

❖ 打开百度图⽚⽹址:https:// image.baidu.com

❖ 识别上传按钮

❖ 点击上传按钮

❖ 将本地的图⽚⽂件上传

chrome 开启 debug 模式:

有时候登录⽅式⽐较繁琐,需要动态⼿机密码,⼆维码登录之类的。⾃动话实现⽐较⿇烦。⼿⼯登录后, 不想让selenium启动⼀个新浏览器。可以使⽤chrome的debug⽅式来执⾏测试。

❖ 启动chrome的时候需要先退出所有chrome进程。使⽤ps aux|grep chrome|grep -v 'grep'查看是否有 chrome进程存在。确保没有chrome进程被启动过。下图是错误⽰范。

❖ 正常启动chrome的debug模式

❖ # 默认macOS系统

  ❖ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debuggingport=9222

❖ # Windows下找到chrome.exe位置执⾏下⾯的命令

  ❖ chrome.exe --remote-debugging-port=9222

❖ 启动后的提示信息,代表chrome运 ⾏正常,不要关闭⾃动打开的 chrome窗口。

弹框处理机制:

在页⾯操作中有时会遇到JavaScript所⽣成的alert、confirm以及prompt弹框,可以使⽤ switch_to.alert()⽅法定位到。然后使⽤text/accept/dismiss/send_keys等⽅法进⾏操作。参考教你 分辨alert、window、div模态框,以及操作:https://huilansame.github.io/

❖ 操作alert常⽤的⽅法:

  ❖ switch_to.alert():获取当前页⾯上的警告框。

  ❖ text:返回alert/confirm/prompt 中的⽂字信息。

  ❖ accept():接受现有警告框。

  ❖ dismiss():解散现有警告框。

  ❖ send_keys(keysToSend):发送⽂本⾄警告框。keysToSend:将⽂本发送⾄警告框。

alert窗⼜处理案例:

测试案例:

❖ 打开⽹页 https://www.runoob.com/ try/try.php?filename=jqueryui-apidroppable

❖ 操作窗⼜右侧页⾯, 将元素1拖拽到元素2

❖ 这时候会有⼀个alert弹框,点击弹框中的’ 确定’

❖ 然后再按’点击运⾏’

❖ 关闭⽹页

alert窗⼜处理案例:

def test_framedeal(self):

  self.driver.switch_to.frame("iframeResult")

  action = ActionChains(self.driver)

  action.click_and_hold(self.driver.find_element_by_id("draggable"))\

    .move_to_element(self.driver.find_element_by_id("droppable")).release().perform()

  self.driver.switch_to.alert.accept()

  # self.driver.switch_to.default_content()

  self.driver.switch_to.parent_frame()

  print(self.driver.find_element_by_id("submitBTN").text)

  self.driver.find_element_by_id("submitBTN").click()

  time.sleep(3)

标签:19,self,driver,弹框,chrome,alert,上传
From: https://www.cnblogs.com/csfsz/p/17934726.html

相关文章

  • 19 I2C通信协议原理
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述我们知道I2C总线具备广泛的用途,比如寄存器的配置,EEPROM的使用,更重要的是I2C总线上可以挂载非常多的外......
  • Adobe InCopy 2024 v19.0 (macOS, Windows) - 编写和副本编辑软件
    AdobeInCopy2024v19.0(macOS,Windows)-编写和副本编辑软件Acrobat、AfterEffects、Animate、Audition、Bridge、CharacterAnimator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、LightroomClassic、MediaEncoder、Photoshop、PremierePro、AdobeXD作者主......
  • 可拖拽弹框组件
    可拖拽组件<BaseDialog      v-if="totalDialogVisible"      title="合计"      :visible.sync="totalDialogVisible"      width="30%"      @close="handleCloseTotal"      @s......
  • CF1917F Construct Tree 题解
    题目链接:https://codeforces.com/contest/1917/problem/F题意有\(n\)条长度\(l_i\)的边,问它们是否能组成一棵\(n+1\)个节点的树,使得树的直径长度为\(d\)。\(n,d\le2000\)。题解首先当然要存在一个边集\(D\),使得\(\sum\limits_{i\inD}l_i=d\),这可以使用背包......
  • 福建科立讯通信有限公司指挥调度管理平台-upload接口任意上传
    FOFA语法body="指挥调度管理平台"&&title=="指挥调度管理平台"POCPOST/api/client/upload.phpHTTP/1.1Host:{{Hostname}}Content-Length:180Cache-Control:max-age=0Upgrade-Insecure-Requests:1Content-Type:multipart/form-data;boundary=----......
  • Docker安装sqlserver-2019(已做持久化)
    Docker安装sqlserver-2019一.新建挂载目录并赋权mkdirsqlservercdsqlservermkdir-p/data/mssql#给目录赋予写的权限,不然在容器启动的时候,文件无法挂载chmod-R777./data/mssql二.准备docker-compose文件#在预先创建的sqlserver目录下vidocker-compose.yml#写入......
  • 通达OA 任意文件上传+文件包含 getshell
    漏洞影响版本通达OAV11版<=11.320200103通达OA2017版<=10.1920190522通达OA2016版<=9.1320170710通达OA2015版<=8.1520160722通达OA2013增强版<=7.2520141211通达OA2013版<=6.2020141017漏洞分析根据网上的文章可以知道任意文件上传的漏洞点在is......
  • PHP实现视频文件上传完整实例
    本文以一个完整实例的形式实现了视频文件上传的功能。虽然是比较基础的应用,仍有一定的参考价值。分享给大家供大家参考之用。具体方法如下:首先,对PHP来说视频也属于文件,我们利用这个道理,可以通过与上传普通文件类似的方式实现上传PHP视频文件。不同的是视频文件一般较大,上传时间长......
  • 19. 名词性从句-名词性从句的引导词
    名词性从句的引导词——按照从句的类型分的类一共分为3类,并且英语中所有的从句一定都是陈述句的形式——也就是引导词+主语+谓语的形式。1>That——当从句是陈述句时,并且that不充当任何成分,只是引导作用2>Whether——当从句是一般疑问句时。并且whether在从句中也不充当......
  • codeforces刷题(1100):1901B_div2
    B、ChipandRibbon跳转原题点击此:该题地址1、题目大意  存在一条由n个单元格组成的带子。chip可以做两个操作:1、由\(i\)走到\(i+1\),但是不能走到\(i-1\);2、可以传送到任意位置,包括传送到原地。每到一个单元格,该单元格的数值+1(初始为0)。最开始chip在从第一格开始走起(题......