non posso scatto del tasto che apre la finestra di file allegato
-
10-10-2019 - |
Domanda
sto usinng selenio 2 beta ??strong>. 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.
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();
}