0

これは私の最初の投稿であり、同じ質問をもう一度して申し訳ありません。Selenium Web Driver でのファイルのアップロードに関する問題で立ち往生しています。このフォーラムでよく検索しましたが、解決策がうまくいきません。ファイル参照ボタンである要素は、ファイル テキスト領域 (つまり、ファイル参照ダイアログ ボックスを参照した後にファイルのパスが出力される場所) に埋め込まれていますが、アップロード ボタンは分離されています。

要素コード全体は次のとおりです。

<input class="iceInpFileTxt" type="file" size="35" name="upload">

click() メソッドを使用して「参照」ボタンをクリックできません。Autoit/Robot も使用してみました。

JSP ページからの要素のコード: <ice:inputFile id="fileUpload" width="600" autoUpload="true" value="#{practitionerLoadDataBean.inputFile}" actionListener="#{practitionerLoadControllerBean.browse}"/>

入力タイプがファイルであることはわかっているので、 sendkeys() は機能するはずです。私が試してきたコードは次のとおりです。

WebElement elem = driver.findElement(By.xpath("//input[@name='upload']")); elem.sendKeys("<PATH>");

エラー メッセージは次のように表示されます。 org.openqa.selenium.remote.ErrorHandler$UnknownServerException:Unable to locate element: {"method":"xpath","selector":"//input[@name='upload']"}

私の間違いがどこにあるのか教えてください。前もって感謝します。

4

4 に答える 4

1

要素が単に見えない場合、見つかったはずですが、それを操作することはできません。通常の解決策は、フレームを探し回ることです。

フレームに含まれる要素を検索することはできません。最初にドライバーのコンテキストをそのフレームに切り替える必要があります。

driver.switchTo().frame("frameName");

次に、要素を見つけて、通常の方法でファイルをアップロードできます(sendKeys()ここの他の回答で説明されている方法を使用してください)。

于 2013-07-19T07:37:42.517 に答える
0

SendKeys を使用したファイルのアップロード

FirefoxDriver driver = new FirefoxDriver();

driver.get("URl");

File file=null;

try
{
file=new File("file path");
}

catch(Exception e)
{
e.printStackTrace();
}

Assert.assertTrue(file.exists());

WebElement browserButton=driver.findElement(By.id("button Id"));

browserButton.sendkeys(file.getAbsolutePath());
于 2013-07-17T05:10:20.243 に答える
0

入力要素が表示されていることを確認してください

参照ボタンをクリックしないでください。ファイルをアップロードするためのシステム レベルのダイアログ ボックスが開きます。これを Selenium で処理するのは非常に面倒です。

次の方法を使用できます。

driver.find_element(:id,'videoupload').send_keys("E:\\video.flv")

コードの「\\」を確認してください。

アップロードは、ファイルを送信する要素がフォーム内にある場合にのみ機能することに注意してください。

これがうまくいくことを願っています。

乾杯!!

于 2013-07-16T06:07:09.703 に答える