zoukankan      html  css  js  c++  java
  • 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:iDownloadFirefox 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()
  • 相关阅读:
    HTML导航
    html5学习笔记
    crm使用soap启用和停用记录
    crmjs区分窗口是否是高速编辑(2)
    关于strace的一点东西
    Android studio第一次使用配置(三)gradle项目构建
    IntelliJ IDEA 问题总结之二(待补充) —— 快捷键、主题样式、导出jar、sqlite
    spark之map与flatMap差别
    leetcode:String to Integer (atoi)
    oracle索引的操作
  • 原文地址:https://www.cnblogs.com/qingqing-919/p/8716347.html
Copyright © 2011-2022 走看看