Domanda

sto usinng selenio 2 beta . sto cercando il pulsante che apre la finestra di file allegato a fare clic. ma quando lo scatto non succede nulla.

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


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

utilizzando solo il selenio non selenio 2 posso cliccare facilmente.

È stato utile?

Soluzione

Credo che la questione è solo quando si utilizza Internet Explorer dal IE e FF gestisce l'Input File leggermente diversa: in FF è possibile fare clic sul pulsante o il campo per richiamare la finestra di dialogo Apri, mentre in IE è possibile fare clic sul tasto o fare doppio clic su sul campo.

WebDriver utilizzando eventi nativi in ??modo che è l'invio di un clic del mouse nativo per il file di controllo di input che viene tradotto al clic sul campo di input.

Si stava lavorando nel Selenio 1 perché sta usando il JavaScript per sparare gli eventi. Per farlo funzionare in WebDriver è necessario richiamare il JavaScript:

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

Tuttavia il codice abouve non sarà in Firefox, in modo da poter usare qualcosa come:

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

Altri suggerimenti

magari provare seguente codice:

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();
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top