Pregunta

Estoy usinng selenio beta 2 . Estoy tratando botón de diálogo que se abre archivo adjunto para hacer clic. pero cuando hago clic en él no pasa nada.

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


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

utilizando sólo el selenio no selenio 2 i puede hacer clic en él fácilmente.

¿Fue útil?

Solución

Creo que la cuestión es sólo cuando se utiliza Internet Explorer desde IE y FF maneja el archivo de entrada ligeramente diferente: en FF puede hacer clic en el botón o el campo para invocar el cuadro de diálogo Abrir, mientras que en IE puede hacer clic en el botón o haga doble clic en en el campo.

WebDriver usando eventos nativos por lo que es el envío de un clic del ratón nativa al control de entrada de archivos que se traduce al clic en el campo de entrada.

Se estaba trabajando en Selenio 1 porque está utilizando el JavaScript para despedir a los eventos. Para hacer que funcione en WebDriver es necesario invocar el código JavaScript:

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

Sin embargo, el código no abouve en Firefox, por lo que puede usar algo como:

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

Otros consejos

quizás tratar siguiente código:

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();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top