Haga clic en el elemento solo funcionando de manera intermitente -- java campo con selenium-webdriver camp Relacionados El problema

Click element only working Intermittently


0
vote

problema

Español

Tengo este problema extraño. El propósito de la prueba es iniciar sesión y hacer clic en un elemento. La prueba de inicio de sesión parece funcionar constantemente, pero hacer clic en un elemento después de que el inicio de sesión parece funcionar de forma intermitente. Si ejecuto la prueba 10 veces, parece que funciona 4 veces.

  driver.get("SomeWebsite"); driver.manage().window().maximize();  driver.manage().timeouts().pageLoadTimeout(1, TimeUnit.MINUTES); driver.findElement(By.xpath("//li[2]/a")).click();  driver.manage().timeouts().pageLoadTimeout(100, TimeUnit.SECONDS); driver.findElement(By.cssSelector("input[id*='textfield']")).sendKeys("someemail"); driver.findElement(By.cssSelector("input[type*='password']")).sendKeys("password"); driver.findElement(By.xpath("//div[3]/em/button")).click();    

Los códigos parecen funcionar bien hasta este punto. Sin embargo, el código a continuación es el que estoy teniendo el problema.

  WebElement myDynamicElement = (new WebDriverWait(driver, 10)) .until(ExpectedConditions.presenceOfElementLocated(By.id("header")));   driver.findElement(By.xpath("//li/a")).click(); // corresponding HTML <a href="#!mainmenu">Menu</a>   
Original en ingles

I have this strange issue. The purpose of the test is to login and click an element. The login test seems to work consistently but clicking an element after login seems to work intermittently. If I run the test 10 times, it seem to work 4 times.

driver.get("SomeWebsite"); driver.manage().window().maximize();  driver.manage().timeouts().pageLoadTimeout(1, TimeUnit.MINUTES); driver.findElement(By.xpath("//li[2]/a")).click();  driver.manage().timeouts().pageLoadTimeout(100, TimeUnit.SECONDS); driver.findElement(By.cssSelector("input[id*='textfield']")).sendKeys("someemail"); driver.findElement(By.cssSelector("input[type*='password']")).sendKeys("password"); driver.findElement(By.xpath("//div[3]/em/button")).click();  

The codes seem to work fine till this point. However, the code below is the one I am having the issue.

WebElement myDynamicElement = (new WebDriverWait(driver, 10)) .until(ExpectedConditions.presenceOfElementLocated(By.id("header")));   driver.findElement(By.xpath("//li/a")).click(); // corresponding HTML <a href="#!mainmenu">Menu</a> 
     
       
       

Lista de respuestas

0
 
vote

Tienes 2 opciones para esto.

1 ) Parece que está exagerando el PageloadTimeOuts, intente usar la espera implícita y configúrelo una vez cuando el controlador se carga de la siguiente manera

  13:40:19 up 22 days, 23:14,  0 users,  load average: 0.04, 0.02, 0.00 3  

Podrías modificar la espera implícita a los valores diferentes por el bien de la estabilidad. Intenta dar unas pocas pruebas con 40 o 20 segundos también.

2 ) Aunque esta no es una solución perfecta, pero puede detener la ejecución durante algún tiempo utilizando la espera en bruto o hilo.sleep antes de hacer clic en el elemento que le da problemas Esto incluye un número mágico, pero se sabe que trabaja 9 de 10 veces.

 

You have 2 options for this.

1)Seems you are overdoing the pageLoadTimeouts, try using implicit wait and set it once when driver loads up as follows

driver.get("SomeWebsite"); driver.manage().window().maximize();  driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);  driver.findElement(By.xpath("//li[2]/a")).click();  driver.findElement(By.cssSelector("input[id*='textfield']")).sendKeys("someemail"); driver.findElement(By.cssSelector("input[type*='password']")).sendKeys("password"); driver.findElement(By.xpath("//div[3]/em/button")).click();  

You could tweak the implicit wait to different values for the sake of stability. Try giving a few trial runs with 40 or 20 seconds as well.

2)Though this is not a perfect solution but you could halt the execution for some time using Raw wait or Thread.Sleep before you click on the element giving you trouble this includes a magic number but it's known to work 9 out of 10 times.

 
 
 
 

Relacionados problema

0  La implementación de Iediriver falla la prueba  ( Iedriver implementation fails the test ) 
Estoy usando WEBDRIVER (sin implementación de IEDRIVIRIFER) 2.23 API en la máquina Windows7 con JDK7 y JRE7. Los scripts de prueba están funcionando bien como...

5  Selenium Webdriver: ¿cómo sostener el botón derecho del ratón?  ( Selenium webdriver how to holds down the right mouse button ) 
Uso de Selenium 2.0 WEBDRIVER (JAVA), necesito probar alguna navegación (Girar, Pan ...) Necesito poder sostener el botón derecho mientras mueve el mouse. ...

10  ¿Cómo hacer la ejecución de la parada minitestada en el fracaso?  ( How to make minitest stop execution on failure ) 
Estoy usando MINITESTS como el corredor para mis pruebas funcionales, utilizando Selenium como el conductor para ejecutar el navegador. Cada prueba se modela ...

0  Definición de estado predeterminado para WebDriver para continuar trabajando en casos adicionales  ( Defining default state for webdriver to continue work with in further cases ) 
Estoy tratando de definir un estado predeterminado de WebDriver. Este estado del WBDRIVER está después de un inicio de sesión y cree script, que se encarga de...

0  ¿Un ejemplo de la ejecución paralela de los escenarios Behat / Drupal basados ​​en los contornos?  ( An example of parallel execution of behat drupal scenarios based on outlines ) 
Tenemos un conjunto de pruebas de UI de extremo frontal implementadas en PHP Behat que se extiende DrupalContext. Todos los escenarios son conducidos con punt...

0  PRUEBA DE TESTNG salta mientras se ejecuta dentro del servlet  ( Testng test skips while executing it inside servlet ) 
Estoy tratando de ejecutar la prueba de Testg dentro del servlet con la ayuda de " testlisteneradapter "y" testng "Mi código SNIPPET es así: TestListene...

0  Tener una pantalla que tenga las casillas de verificación y las notas, las notas se dejan alineadas debajo de la DIV y las casillas de verificación están alineadas correctamente  ( Have a screen which has checkboxes and notes the notes are left aligned under t ) 
Problema: tenga una pantalla que tiene casillas de verificación y notas, las notas se dejan alineadas debajo de la DIV y las casillas de verificación están al...

3  Desactivar la burbuja de contraseña de Google Chrome para las pruebas de WebDriver  ( Disable google chrome password bubble for webdriver tests ) 
Dado el siguiente fragmento de código: case "CHROME": System.setProperty("webdriver.chrome.driver", DriverPaths.CHROMEPATH); ChromeOptions optio...

0  Grid de selenio - Hacer algo en la falla de la prueba  ( Selenium grid do something on test failure ) 
Soy relativamente nuevo en Selenium Grid y tengo problemas con la estabilidad de las pruebas. Por alguna razón, cuando ejecuto mis pruebas a través de la cuad...

0  ¿Cuál es la solución para este error en el controlador web de selenio?  ( What is the solution for this error in selenium web driver ) 
Soy nuevo en Selenium Web Driver Automation. Cuando intente este fragmento de código para ejecutar, recibí este mensaje de error. Me estoy poniendo nerviosa B...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos