0

セレンは初めてです。私の要件は、参照ボタンを使用してcsvファイルのアップロードを自動化することです。直面している問題は、同じ名前と同じ値の2つの参照ボタンを持つ2つのフォームがあるため、に基づいて参照ボタンをクリックする必要があります。 form(フォーム名が異なります)以下は私のサンプルコードです

参照ボタンをクリックするスクリプト:

#include <IE.au3>
; Internet Explorer is partly integrated in shell.application
$oShell = ObjCreate("shell.application")    ; Get the Windows Shell Object
$oShellWindows=$oShell.windows          ; Get the collection of open shell Windows
$MyIExplorer=""
for $Window in $oShellWindows       ; Count all existing shell windows
  ; Note: Internet Explorer appends a slash to the URL in it's window name
  if StringInStr($Window.LocationURL,"http://") then
      $MyIExplorer=$Window
      exitloop
  endif
next
$oForm = _IEGetObjByName ($MyIExplorer, "document.forms['UploadForm'].elements['browsebutton']")
_IEAction($oForm, "click")

以下は、csvファイルをアップロードするための私のスクリプトです

WinActivate("File Upload");
Local $file ="C:\Work\selenium\abc.csv"
ControlSetText("Choose file", "", "Edit1", $file )
ControlClick("File Upload", "", "Button2")

私のJavaクラスで以下のようにコードを呼び出しています:

Process proc = Runtime.getRuntime().exec("C:\\bowsebutton.exe");
Process proc1 = Runtime.getRuntime().exec("C:\\test3.exe");

seleinumを実行すると、参照ボタンをまったくクリックできませんが、手動で参照ボタンをクリックすると、csvが自動的にアップロードされ、ファイルが送信されます。

参照ボタンがクリックされていない理由がわかりません。助けていただければ幸いです。

4

1 に答える 1

1

ダイアログをポップアップ表示するには、FindElement を使用する必要があります。Java でどのように見えるかはわかりませんが、C# でのものとそれほどかけ離れていることはありません。

    InternetExplorerDriver driver = new InternetExplorerDriver();

    //Do stuff obviously ....

    driver.FindElement(By.XPath("//input[@type='file']")).SendKeys(@"c:\somefile.txt");
于 2013-12-27T22:57:13.313 に答える