2017-05-05 3 views
0

Warum warten meine WebDriver-Methoden nicht konstant auf den Button?Warum warten meine WebDriver-Methoden nicht konstant auf den Button?

Zum Beispiel von 7 Tests wird es nicht gelingen zu sagen, dass der Locator nicht sichtbar ist, aber wenn man auf den Screenshot schaut, ist der Button eindeutig da!

Ich habe versucht, wartet, normale Klicks, Schleife und JS Klicks etc Nothink konsequent klickt auf die Schaltfläche.

public void waitAndClickElement(WebElement element) throws InterruptedException { 
    boolean clicked = false; 
    int attempts = 0; 
    while (!clicked && attempts < 1000) { 
     try { 
      wait.until(ExpectedConditions.elementToBeClickable(element)).click(); 
      System.out.println("Successfully clicked on the WebElement: " + element.toString()); 
      clicked = true; 
     } catch (Exception e) { 
      System.out.println("Unable to wait and click on WebElement" + element + ", Exception: " + e.getMessage()); 
      Assert.fail("Method failed: waitAndClickElement"); 
      //Assert.fail("Unable to wait and click on the WebElement, using locator: " + element.toString()); 
     } 
     attempts++; 
    } 

} 

public void clickOnBuyNowButton() throws InterruptedException { 
    WebElement buyNowButton = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[1]/div/div/section/div[2]/div[2]/div[2]/form/div/input")); 
    WaitUntilWebElementIsVisible(buyNowButton); 
    Actions action = new Actions(driver); 
    action.moveToElement(buyNowButton).doubleClick().build().perform(); 
} 

Irgendwelche Ideen? mache ich etwas falsch?

Vielen Dank für Ihre Hilfe

Antwort

0

Versuchen Sie Folgendes; hier warte ich zunächst für ein Element anklickbar zu sein und dann einmal wird es anklickbare ich es bin bewegt und dann werfen mein Klick:

WebDriverWait wait = new WebDriverWait (driver, 20); 
wait.until(ExpectedConditions.elementToBeClickable(yourElement)); 

Actions act = new Actions(driver); 
act.moveToEelment(yourElement).click().build().perform(); 
+0

@ kushal.even die Arbeit dosnt:/its als ob sogar obwohl ein Timeout von zB 15 Sekunden eingestellt wurde, versucht es dann nicht, auf das Element – Gbru

+0

zu klicken. Was passiert, wenn 20 Sekunden vergangen sind? – kushal

+0

@ kushal.an Ausnahme wäre zum Beispiel nicht in der Lage, auf Element klicken oder Locator ist nicht sichtbar, aber ich habe Screenshots erfasst und der Button ist da – Gbru

Verwandte Themen