Frage

ich bin usinng Selen 2 beta . Ich versuche zu klicken, die Dateianhang Dialog öffnet sich. aber wenn ich klicken, um es passiert nichts.

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


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

mit nur Selen nicht Selen 2 i kann es leicht klicken.

War es hilfreich?

Lösung

Ich denke, dass das Problem nur, wenn da IE Internet Explorer verwenden und FF behandelt der Dateieingabe etwas anders: in FF können Sie auf die Schaltfläche klicken oder das Feld, um das Öffnen-Dialog aufrufen, während in IE Sie auf die Schaltfläche können Taste oder Doppelklick auf auf dem Feld.

WebDriver mit nativen Ereignissen so ist es eine native Mausklick auf die Datei-Eingabesteuerung sendet, die mit dem Klick auf dem Eingabefeld übersetzt wird.

Es wurde in Selen 1 zu arbeiten, weil es die JavaScript verwendet, die Ereignisse zu feuern. Um es in WebDriver arbeiten müssen Sie die JavaScript aufzurufen:

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

Doch der Code abouve wird nicht in Firefox, so dass Sie so etwas wie verwenden können:

WebElement upload = driver.findElement(By.name("Passport"));
if (driver instanceof InternetExplorerDriver) {
    ((JavascriptExecutor)driver).executeScript("arguments[0].click();", upload);
} else {
    upload.click();
}

Andere Tipps

vielleicht folgender Code versuchen:

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();
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top