webdriver高级应用- 右键另存为下载文件
1.要使用右键另存,需要先按照第三方工具AutoIt:
链接: https://pan.baidu.com/s/12aBBhOOTmyQpH9hukt0XGA 密码: fcdk
2.创建一个名为loadFile.au3的AutoItScript编辑器,内容如下:
- 新建一个名为loadFile.au3的AutoItScript编辑器,文件具体内容如下:
- ;ControlFocus("title","text",controlID)
- ;表示将焦点切换到标题为title窗体中的controlID上
- ;Edit1表示第一个可以编辑的实例
- ;title表示弹出的Window窗口标题,不同浏览器的标题可能不一样
- ControlFocus("请输入要保存的文件名...","","Edit1")
- ;等待10秒以便window窗口加载成功
- WinWait("[CLASS:#32770]","",10)
- ;将焦点切换到Edit1输入框中
- ControlFocus("另存为","","Edit1")
- ;等待2秒
- Sleep(2000)
- ;将要下载的文件名及路径写入Edit1编辑框中
- ControlSetText("另存为","", "Edit1", "d:\iDownload\Firefox Setup 35.0b8.exe")
- Sleep(2000)
- ;点击窗体中的第一个按钮,也就是保存按钮
- ControlClick("另存为","","Button1")
- 保存后将该文件编译成exe文件,并存放到本地磁盘。
3.将该内容保持后,编译成exe文件,并存放到本地磁盘。
保存后的内容可下载文件:
链接: https://pan.baidu.com/s/13OWAiVMuSy_fW8PXTe_f5Q 密码: ry4k
4.编写python代码,实现右键保存:
- # encoding=utf-8
- from selenium import webdriver
- import unittest, time, os
- from selenium.webdriver.common.keys import Keys
- from selenium.webdriver import ActionChains
- import win32api
- import win32con
- VK_CODE ={'enter':0x0D, 'down_arrow':0x28}
- #键盘键按下
- def keyDown(keyName):
- win32api.keybd_event(VK_CODE[keyName], 0, 0, 0)
- #键盘键抬起
- def keyUp(keyName):
- win32api.keybd_event(VK_CODE[keyName], 0, win32con.KEYEVENTF_KEYUP, 0)
- class TestDemo(unittest.TestCase):
- def setUp(self):
- #self.driver = webdriver.Ie(executable_path = "e:\\IEDriverServer")
- self.driver = webdriver.Chrome(executable_path="e:\\chromedriver")
- def test_dataPickerByRightKey(self):
- # 定义将要访问的网址
- url = "http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/35.0b8/win32/zh-CN/"
- self.driver.get(url)
- # 将窗口最大化
- self.driver.maximize_window()
- # 暂停5秒,目的防止页面有一些多余的弹窗占据焦点
- time.sleep(5)
- # 找到文本内容为“Firefox Setup 35.0b8.exe”超链接元素
- a = self.driver.find_element_by_link_text("Firefox Setup 35.0b8.exe")
- time.sleep(2)
- # 在找到的链接元素上模拟点击鼠标右键,
- # 以便调出选择“另存为”选项的菜单
- ActionChains(self.driver).context_click(a).perform()
- # 暂停2秒,防止命令执行太快
- time.sleep(2)
- for i in range(4):
- # 循环按4次下箭头,将焦点切换到“另存为”选项上
- # 不同浏览器此选项的位置可能不同
- #a.send_keys(Keys.DOWN)
- keyDown("down_arrow")
- keyUp("down_arrow")
- print i
- time.sleep(2)
- time.sleep(2)
- # 当焦点切换到“另存为”选项上后,模拟点击回车键
- # 调出保存下载文件路径的Windows窗体
- keyDown("enter")
- keyUp("enter")
- time.sleep(3)
- # 通过执行AutoIt编写的操作弹窗的Windows文件保存窗体
- # 完成文件保存路径的设置
- os.system("E:\API3\\upload_file1.exe")
- # 等待文件下载完成,根据各自的网络带宽情况设定等待相应的时间
- time.sleep(5)
- def tearDown(self):
- self.driver.quit()
- if __name__ == '__main__':
- unittest.main()
webdriver高级应用- 右键另存为下载文件的更多相关文章
- selenium webdriver 右键另存为下载文件(结合robot and autoIt)
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...
- python webdriver api-右键另存下载文件
右键另存下载文件 先编辑SciTE脚本: ;ControlFocus("title","text",controlID) ;表示将焦点切换到标题为title窗体 ...
- js使用浏览器的另存为下载文件
页面上的页面如下: 我需要根据返回的url下载文件: js: //判断浏览器类型 function myBrowser(){ var userAgent = navigator.userAgent; ...
- 使用selenium实现右键另存为保存文件
1.需要借住autoit工具和Robot类,下载地址:https://www.autoitscript.com/site/autoit/downloads/ 2.autoit的使用不再详细讲解.如下图 ...
- python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为
0.关键实现:程序窗口前置 python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过pyauto实现右键菜单和另存为操作 1.参考 aut ...
- Win 7 IE11不能下载文件,右键另存为也不行
在IE11中不能下载文件,右键另存为也无效. 发现 在IE11中点击“INTERNET选项”后,IE临时文件夹的地址没有显示,大小为0,修改只能让设置在8-8MB,注销再登录后,一切设置无效. 问题就 ...
- webdriver高级应用- 无人工干预地自动下载某个文件
在网页上下载文件时,通常需要人为设定下载文件并选择保持路径,这样就无法实现完全自动的下载过程.下面实现基于firefox浏览器的全自动化文件下载操作: #encoding=utf-8 from sel ...
- 转:python webdriver API 之下载文件
webdriver 允许我们设置默认的文件下载路径.也就是说文件会自动下载并且存在设置的那个目录中.要想下载文件,首选要先确定你所要下载的文件的类型.要识别自动文件的下载类型可以使用 curl ,如图 ...
- linux 从百度网盘下载文件的方法
linux 从百度网盘下载文件的方法 发表于2015 年 月 日由shenwang 方法1.wget wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括 ...
随机推荐
- Swing编程概述
Swing作为AWT组件的“强化版”,它的产生主要是为了克服AWT构建的GUI,无法在所有平台都通用的问题.允许编程人员跨平台时指定统一的GUI显示风格也是Swing的最大优势.Swing是AWT的补 ...
- Kendo UI Validator 概述
Kendo UI Validator 概述 Kendo UI Validator 支持了客戶端校驗的便捷方法,它基於 HTML 5 的表單校驗功能,支持很多內置的校驗規則,同時也提供了自定義規則的便捷 ...
- RK3288开发过程中遇到的问题点和解决方法之Kernel
修改背光改变区间 kernel\drivers\video\backlight\pwm_bl.c static int pwm_backlight_update_status(struct backl ...
- COGS 1215. [Tyvj Aug11] 冗余电网
★ 输入文件:ugrid.in 输出文件:ugrid.out 简单对比时间限制:1 s 内存限制:128 MB TYVJ八月月赛提高组第2题 测试点数目:5 测试点分值:20 --内存 ...
- LibreOJ #107. 维护全序集
内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 上传者: 匿名 splay模板题 屠龙宝刀点击就送 #include <cstdio&g ...
- 实验十三 团队作业9:Beta冲刺与团队项目验收
实验十三 团队作业9:Beta冲刺与团队项目验收 实验时间 2019-6-20(21) Deadline: [6.20-6.26]之间任选连续3天的23:00,以团队随笔博文提交时间为准. 评分标准: ...
- 因 URL 意外地以“/HelloWorld”结束,请求格式无法识别。
web.config文件中的 <system.web> 节点下加入:<webServices> <protocols> <add name ...
- shell脚本,awk利用NF来计算文本显示的行数。
解释: 1.awk 'NF{a++;print a,$0;next}1' file4 首先判断NF是否存在值,第一行第二行第三行第四行都存在,进行执行后面的输出,输出后碰到next后,就结束了后面的操 ...
- 01_1_准备ibatis环境
01_1_准备ibatis环境 1. 搭建环境:导入相关的jar包 mysql-connector-java-5.1.5-bin.jar(mysql)或者ojdbc6.jar(oracle).ibat ...
- cocos2dx 单张图片加密
cocos2dx 已经封装好读取加密的prv文件的方法,打开texturepacker,导入一张图片,在content protection中写入密钥,在texture format中选择prv格式 ...