ファイルのアップロードは自動化の難しい部分です。現在、selenium はアップロード実装 API を提供していないため、AutoIt や sikuli などの外部の力を使用して完了する必要があります。
AutoIt は、BASIC に似たスクリプト言語を使用するフリー ソフトウェアで、キーボードのキー、マウスの動き、ウィンドウとコントロールの組み合わせをシミュレートすることにより、Windows GUI (グラフィカル ユーザー インターフェイス) 操作を自動化するように設計されています。タスク;
どちらのダウンロード方法も利用できます。ここでダウンロードしたいのは zip です。以下に示すようになります。
SciTe フォルダーをクリックすると、スクリプト エディターが開きます。
Baidu 画像アップロード ウィンドウを開き、AutoIt Windows 情報ツールを開き、マウスを Finder ツールに移動し、マウスの左ボタンを押したまま Windows コントロールにドラッグします。それを特定する必要があります。要素ロケーターのターゲット シェイプ ボタンをファイル アップロード ポップアップ ウィンドウにドラッグして、要素情報をキャプチャします。マウスを使用して、ツール上のファインダー ツール アイコン (図の青い丸で囲まれた部分) を識別するコントロールまでドラッグします。コントロールの一意の識別情報がツールの左側の部分 (写真の赤枠部分))。表示された結果から、このコントロールのタイトルは「Open」、クラスは Edit、Instance=1 であることがわかります。コントロールのこの情報を使用して、コントロールを見つけてスクリプトを作成します。
エディタを開いて関数を呼び出し、コントロール ファインダー ツールによって認識された情報に基づいてスクリプトを作成します。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)
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 がインストールされています)
# プロンプト変換完了: 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 サイトの他の関連記事を参照してください。