セレン+ pythonの自動テスト - パラメトリックアップロードファイル

はじめに:これは、学校への長いブログでの方法で、かつ記録するつもりはなかったが、それはより深く、メモリに記録中であるので、不注意なコーディングに、エラーが、1時間以上解決しました。

用途:非ファイルアップロード入力

 

1、環境の準備

 ツールをダウンロードしてインストールする公式サイトをAutoItの(指針に基づいてをインストールすることができます)、ダウンロード:  https://www.autoitscript.com/site/autoit/downloads/

2、[スタート]メニューにインストールが成功した後のファイルを表示するには

3、AutoItのいくつかのメニューの特長があります。

  • ここSciTEのスクリプトエディタエディタのAutoItスクリプトの書き込み
  • AutoItのWindowsの情報要素ロケータ、情報は、Windowsのコントロールを識別するために使用されます
  • スクリプトの実行のAutoItスクリプトの実行
  • スクリプトをコンパイルしto.exeはAutoItの.exe実行ファイルを生成します。

 図4に示すように、ローカルファイルの場所を見つけます

ステップ:

(1)アップロード]ボタンをクリックしてください

(2)あなたがアップロードしたいファイルの場所を入力します。

の冒頭に(3)を開きAutoItのWindowsの情報ツール

(4)地域の弾性ドラッグFinderのツールボックスファイル名入力ボックスに、AutoItのWindowsの情報は、次の図に示します。

(5)地域の弾性ドラッグファインダーツールボックスオープンボタンに、AutoItのWindowsの情報を次の図に示します。

5、初めにオープンSciTEのスクリプトエディタエディタ、書き込みスクリプトの実行

いくつかの一般的に使用される構文をAutoItの:

  • アクティブウィンドウのフォーカスを指定するWinActivate(「タイトル」)
  • ControlFocus(「タイトル」、「テキストウィンドウ」、controlID)は、制御指示ウィンドウに入力フォーカスを設定します。
  • WinWait指定したウィンドウは、これまでに存在している(表示される)まで、スクリプトの実行を一時停止する(「タイトル」、「テキストウィンドウ」、タイムアウト);
  • ControlSetText ( "title", "窗口文本", controlID, "新文本" ) 修改指定控件的文本;
  • Sleep ( 延迟 ) 使脚本暂停指定时间,单位是毫秒;
  • ControlClick ( "title", "窗口文本", 控件ID , 按钮 , 点击次数 ) 向指定控件发送鼠标点击命令;

命令行参数:

  • $CmdLine[0] 获取的是命令行参数的总数
  • $CmdLine[1]~$CmdLine[63] 获取的是命令行参数第1到第63位,这个方式最多只能获取63个参数,不过正常情况下是足够用的
  • $CmdLineRaw 获取的是未拆分的所有参数,是一个长字符串,这种情况下不局限与63个参数

 

注意:编写执行脚本时一定带上instance这个参数,否则无法跳到要上传的文件路径!!!

将以上编写好的执行脚本另存为   .au3 结尾的文件

6、将执行脚本转换为  .exe结尾的文件

在开始菜单中打开  这个工具,选择执行脚本和exe文件保存路径,点击“convert”按钮即可

 

 下图为生成的 .exe 文件

  + R  快捷键打开cmd命令窗口,拖入刚转化的exe文件及要上传的文件路径(两个路径间有个空格),回车,如下图则执行成功

7、代码编写

from selenium import webdriver
from common.base import Base
import time
import os

base_url = "url地址"

class ImportRisk(Base):

    def importRisk(self):
        '''风险模板导入'''
        node = ("css selector", ".bp3-tree-node-content.bp3-tree-node-content-0.sc-eNQAEJ.geXpPO")
        self.move_to_element(node)
        # 鼠标右键
        self.move_context_click(node)
        # 选择导入
        menu = ("css selector",".bp3-menu>li:nth-child(1)")
        self.click(menu)
        #点击上传按钮
        upfile = ("css selector",".bp3-file-upload-input.bp3-file-upload-input-custom-text")
        self.click(upfile)
        time.sleep(2)
        #上传文件
        file_path = "D:\EprosliteUI\common\风险模板.xls"
        os.system(r"D:\EprosliteUI\common\upfile.exe %s" %file_path )
        time.sleep(5)
        #点击导入
        submit = ("name","Submit")
        self.click(submit)

if __name__ == '__main__':
    driver = webdriver.Chrome()
    driver.get(base_url)
    driver.maximize_window()
    time.sleep(2)
    risk = ImportRisk(driver)
    risk.importRisk()

    time.sleep(2)
    driver.quit()

 

附:文章参考及批量上传地址:https://www.cnblogs.com/yoyoketang/p/7653221.html

 

おすすめ

転載: www.cnblogs.com/yudx/p/11359340.html