3

私はセレン2ベータを使用しています。ファイル添付ダイアログを開くボタンをクリックしようとしています。しかし、クリックしても何も起こりません。

<input class="zf" name="Passport" id="PassportUpload" type="file" onclick="return { oRequired : {} }" maxlength="524288"> 


driver.findElement(By.name("Passport")).click();

セレン2ではなくセレンのみを使用すると、簡単にクリックできます。

4

2 に答える 2

1

IE と FF ではファイル入力の処理が若干異なるため、問題は Internet Explorer を使用している場合にのみ発生すると思います。FF ではボタンまたはフィールドをクリックして [開く] ダイアログを呼び出すことができますが、IE ではボタンまたはダブルをクリックできます-フィールドをクリックします。

ネイティブ イベントを使用する WebDriver は、入力フィールドのクリックに変換されるファイル入力コントロールにネイティブ マウス クリックを送信します。

JavaScript を使用してイベントを発生させるため、Selenium 1 で動作していました。WebDriver で機能させるには、JavaScript を呼び出す必要があります。

WebElement upload = driver.findElement(By.name("Passport"));
((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload);

ただし、上記のコードは Firefox では使用できないため、次のようなものを使用できます。

WebElement upload = driver.findElement(By.name("Passport"));
if (driver instanceof InternetExplorerDriver) {
    ((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload);
} else {
    upload.click();
}
于 2011-01-12T15:45:07.973 に答える
0

次のコードを試してみてください:

WebElement upload = driver.findElement(By.name("Passport"));
if (driver instanceof InternetExplorerDriver) {
    ((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload);
} else if (driver instanceof FirefoxDriver) {
 ((JavascriptExecutor)driver).executeScript("arguments[0].click;", upload);
}else {
    upload.click();
}
于 2011-10-14T04:10:52.567 に答える