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()

原文地址:https://www.cnblogs.com/qingqing-919/p/8716347.html

时间: 2024-10-09 05:49:54

webdriver高级应用- 右键另存为下载文件的相关文章

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

首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为,根本操作不了. 也有在网上看到webdriver right click option的一些代码,拿来用发现不能用的. Actions act = new Actions(driver); WebElement link = driver.findElement(By.id("xpath"

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

1.需要借住autoit工具和Robot类,下载地址:https://www.autoitscript.com/site/autoit/downloads/ 2.autoit的使用不再详细讲解.如下图: 3.识别到保存窗口后,用autoit编辑器编写脚本 ControlFocus("保存图片", "","Edit1") ;ControlFocus("title","text",controlID) Edit

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

1.参考 autopy (实践见最后一章节) 用Python制作游戏外挂(上) AutoPy Introduction and Tutorial autopy.mouse.smooth_move(1, 1) 可以实现平滑移动 autopy - API Reference pip install PyUserInput SavinaRoja/PyUserInput [python3.5][PyUserInput]模拟鼠标和键盘模拟 Python-模拟鼠标键盘动作 autoit selenium借助

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

在IE11中不能下载文件,右键另存为也无效. 发现 在IE11中点击“INTERNET选项”后,IE临时文件夹的地址没有显示,大小为0,修改只能让设置在8-8MB,注销再登录后,一切设置无效. 问题就出现在这,是临时文件存放的位置无效,点“移动文件夹”换一个位置. IE没有临时存放文件的文件当然就不能下载啦! 这时需要手动设一个位置,如在C盘下 新建一个文件夹IEtemp.点击移动文件夹.选中这个IEtemp文件夹.注销后OK.

GridVIew中下载文件的方法探讨,方法(7)最佳。

(1)使用Button下载 在GridView属性中添加: OnRowCommand="GridView1_RowCommand" 在GridView的<Column>中添加: <asp:ButtonField runat="server" Text="下载" HeaderText="下载" ButtonType="Button" CommandName="DownLoad_Cl

面试题:编写上传和下载文件测试用例

编写上传和下载文件测试用例 走火入魔系列之:上传|下载文件 一.题目: 如何编写上传和下载文件测试用例 1. 上传功能测试点 假如:我们要调试上传功能,前端代码为: <!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <

Linux上传下载文件

2种方式:xftp(工具).lrzsz xftp:协议--SFTP.端口号--22 lrzsz: rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具. 优点就是不用再开一个sftp工具登录上去上传下载文件. sz(下载):将选定的文件发送(send)到本地机器 rz(上传):运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器 安装命令:yum install lrzsz 从服务端发送文件到客户端:sz filename 从客户端上传文件到服务

qt http 下载文件

本文章介绍如何利用HTTP从网站上下载文件.在Qt网络编程中,需要用到协议,即HTTP.它是超文本传输协议,它是一种文件传输协议.对于HTTP就不多解释了. 在Qt网络编程中,需要用到协议,即HTTP.它是超文本传输协议,它是一种文件传输协议.这一节中我们将讲解如何利用HTTP从网站上下载文件.使用的编程环境为Windows下基于Qt4.6.3的Qt Creator 1.3.1 一.最简单的实现. 1.我们新建Qt 4 Gui QApplication . 工程名为“http”,然后选中QtNe

linux上很方便的上传下载文件工具rz和sz使用介绍

简单说就是,可以很方便地用这两个sz/rz工具,实现Linux下和Windows之间的文件传输(发送和接收),速度大概为10KB/s,适合中小文件.rz/sz 通过Zmodem协议传输数据 一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地: 与ssh有关的两个命令可以提供很方便的操作: sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件