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高级应用- 右键另存为下载文件的更多相关文章

  1. selenium webdriver 右键另存为下载文件(结合robot and autoIt)

    首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...

  2. python webdriver api-右键另存下载文件

    右键另存下载文件 先编辑SciTE脚本: ;ControlFocus("title","text",controlID) ;表示将焦点切换到标题为title窗体 ...

  3. js使用浏览器的另存为下载文件

    页面上的页面如下: 我需要根据返回的url下载文件: js: //判断浏览器类型 function myBrowser(){ var userAgent = navigator.userAgent; ...

  4. 使用selenium实现右键另存为保存文件

    1.需要借住autoit工具和Robot类,下载地址:https://www.autoitscript.com/site/autoit/downloads/ 2.autoit的使用不再详细讲解.如下图 ...

  5. python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为

    0.关键实现:程序窗口前置 python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过pyauto实现右键菜单和另存为操作 1.参考 aut ...

  6. Win 7 IE11不能下载文件,右键另存为也不行

    在IE11中不能下载文件,右键另存为也无效. 发现 在IE11中点击“INTERNET选项”后,IE临时文件夹的地址没有显示,大小为0,修改只能让设置在8-8MB,注销再登录后,一切设置无效. 问题就 ...

  7. webdriver高级应用- 无人工干预地自动下载某个文件

    在网页上下载文件时,通常需要人为设定下载文件并选择保持路径,这样就无法实现完全自动的下载过程.下面实现基于firefox浏览器的全自动化文件下载操作: #encoding=utf-8 from sel ...

  8. 转:python webdriver API 之下载文件

    webdriver 允许我们设置默认的文件下载路径.也就是说文件会自动下载并且存在设置的那个目录中.要想下载文件,首选要先确定你所要下载的文件的类型.要识别自动文件的下载类型可以使用 curl ,如图 ...

  9. linux 从百度网盘下载文件的方法

    linux 从百度网盘下载文件的方法 发表于2015 年 月 日由shenwang 方法1.wget wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括 ...

随机推荐

  1. CoordinatorLayout使用笔记

    CoordinatorLayout的使用笔记 首先第一个子控件是AppBarLayout存放首部控件,里面放了一个CollapsingToolbarLayout.代码如下: <android.s ...

  2. 一键部署joomla开源内容管理平台

    https://market.azure.cn/Vhd/Show?vhdId=10896&version=12949 产品详情 产品介绍Joomla是一套自由.开放源代码的内容管理系统,以PH ...

  3. 洛谷 P3019 [USACO11MAR]会见点Meeting Place

    题目背景 征求翻译.如果你能提供翻译或者题意简述,请直接发讨论,感谢你的贡献. 题目描述 Bessie and Jonell are great friends. Since Farmer John ...

  4. DaemonSet 典型应用场景【转】

    Deployment 部署的副本 Pod 会分布在各个 Node 上,每个 Node 都可能运行好几个副本.DaemonSet 的不同之处在于:每个 Node 上最多只能运行一个副本. DaemonS ...

  5. targetcli save error

    iscsi configuration unable to save python error “ValueError: 'Implict and Explict' is not in list” / ...

  6. modelformset

    class StudyRecordDeialView(View): def get(self, request, class_record_id): class_record_obj = models ...

  7. J.U.C知识点梳理

    java.util.concurrent : 提供了并发编程的解决方案 1.CAS 是java.util.concurrent.atomic包的基础 2.AQS是java.util.concurren ...

  8. java中IO流之字节字符流的总结概述

    概念        这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图: Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都 ...

  9. 抓取oracle建表语句及获取建表ddl语句

    抓取oracle建表语句及获取建表ddl语句 1.抓取代码如下: 1.1.产生表的语法资料 DECLARE-- v_notPartTable VARCHAR2(1000):= '&2'; -- ...

  10. 如何解决U盘装系统后磁盘总容量变小?

    我在用Win32_Disk_Imager工具制作U盘系统盘之后,发现U盘大小变为2M,另外的大小没有被分配,解决办法如下. 打开:http://jingyan.baidu.com/article/59 ...