ホームページ  >  記事  >  Java  >  Java Selenium が sendkey を使用してファイルをアップロードする方法

Java Selenium が sendkey を使用してファイルをアップロードする方法

PHPz
PHPz転載
2023-04-20 22:46:131575ブラウズ

AutoIt をダウンロードしてインストールする

ファイルのアップロードは自動化の難しい部分です。現在、selenium はアップロード実装 API を提供していないため、AutoIt や sikuli などの外部の力を使用して完了する必要があります。

AutoIt は、BASIC に似たスクリプト言語を使用するフリー ソフトウェアで、キーボードのキー、マウスの動き、ウィンドウとコントロールの組み合わせをシミュレートすることにより、Windows GUI (グラフィカル ユーザー インターフェイス) 操作を自動化するように設計されています。タスク;

1. AutoIt の公式 Web サイトを開いてダウンロードします。

Java Selenium が sendkey を使用してファイルをアップロードする方法

どちらのダウンロード方法も利用できます。ここでダウンロードしたいのは zip です。以下に示すようになります。

Java Selenium が sendkey を使用してファイルをアップロードする方法

SciTe フォルダーをクリックすると、スクリプト エディターが開きます。

Java Selenium が sendkey を使用してファイルをアップロードする方法

Baidu 画像アップロード ウィンドウを開き、AutoIt Windows 情報ツールを開き、マウスを Finder ツールに移動し、マウスの左ボタンを押したまま Windows コントロールにドラッグします。それを特定する必要があります。要素ロケーターのターゲット シェイプ ボタンをファイル アップロード ポップアップ ウィンドウにドラッグして、要素情報をキャプチャします。マウスを使用して、ツール上のファインダー ツール アイコン (図の青い丸で囲まれた部分) を識別するコントロールまでドラッグします。コントロールの一意の識別情報がツールの左側の部分 (写真の赤枠部分))。表示された結果から、このコントロールのタイトルは「Open」、クラスは Edit、Instance=1 であることがわかります。コントロールのこの情報を使用して、コントロールを見つけてスクリプトを作成します。

Java Selenium が sendkey を使用してファイルをアップロードする方法

エディタを開いて関数を呼び出し、コントロール ファインダー ツールによって認識された情報に基づいてスクリプトを作成します。AutoIt スクリプト エディタに注釈 I を付けずに次のスクリプトを入力します。以下に書きました。

ここで次の情報を知る必要があります:

1. 操作ページのタイトル (操作ページを修正するために使用されます)。
2. 入力が必要な情報は、入力ボックスに「アップロードするファイルのパスとファイル名」を入力します(Windows操作)
3. 「開く」ボタンをクリックしてアップロードします。ファイル。

上記で特定した制御情報に基づいて、SciTE Script Editor エディタを使用して、AutoIT の構文に従ってスクリプトを作成します。

ファイルのアップロードを実装するには、いくつかのメソッドが必要です:

ControlFocus ( "窗口标题", "窗口文本", 控件ID)
---->设置输入焦点到指定窗口的某个控件上(即:控件ID“文件名”输入框的id)
WinWait ( "窗口标题" [, "窗口文本" [, 超时时间]] )
---->暂停脚本的执行直至指定窗口存在(出现)为止
ControlSetText ( "窗口标题", "窗口文本", 控件ID, "新文本" )
---->修改指定控件的文本(即:控件ID“文件名”输入框的id)
Sleep ( 延迟 )
---->使脚本暂停指定时间段
ControlClick ( "窗口标题", "窗口文本", 控件ID [, 按钮] [, 点击次数]] )
---->向指定控件发送鼠标点击命令(即:控件ID“打开”按钮的id)

その中で、title は AutoIt Window Info によって認識される Title フィールドであり、controlID は AutoIt Window Info によって認識されるクラスとインスタンスの結合です。上記と同様、画像の結合後の結果は次のようになります。 Button1 (つまり、classnameNN)

Java Selenium が sendkey を使用してファイルをアップロードする方法

ControlFocus(("title","text",controllD)用于识别windows文件上传窗口
ControlFocus("打开","","")向文件名输入框输入本地要上传文件的路径
ControlSetText("打开","","Edit1","C:\Users\DELL\Desktop\test\upload\北京宏哥.jpeg")
Sleep(2000)点击上传窗口中的“打开“按钮
ControlClick("打开","","Button1")

スクリプト ファイルを ChromFileUpload.au3 形式で保存し、[ツール] メニューをクリックします。 AutoIt スクリプト エディター、ツール =>go、スクリプト検証を実行します (Windows ウィンドウが開いている必要がある)。次の図に示すように、検証は成功します。
このスクリプトが Java によって呼び出されるようにするには、プログラムを実行するには、Compile Script to .exe (x64) ツールを使用する必要があります。 exe ファイルを生成します (これは、.exe インストール パッケージを通じてインストールされた AutoIt です)

AutoIt スクリプト エディタで [ツール] メニューをクリックし、[コンパイル] を選択しますと、.exe ファイルが同じパスに生成されます (これは解凍されたパッケージを通じてインストールされます) AutoIt がインストールされています)

Java Selenium が sendkey を使用してファイルをアップロードする方法

# プロンプト変換完了: ChromeFileUpload.exe を次の場所にコピーしますプロジェクトを保存し、後で Selenium スクリプトで使用します。
javacode

//实现文件上传。通过Runtime的静态方法获取Runtime对象
Runtime runtime = Runtime.getRuntime();
//通过Runtime对象调用exe方法
runtime.exec("C:\Users\DELL\Desktop\test\upload\ChromeFileUpload.exe");

以上がJava Selenium が sendkey を使用してファイルをアップロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。