2017-02-06 6 views
2

Wenn Sie auf ein Kontrollkästchen klicken, wird das Kontrollkästchen hervorgehoben, aber es wird nicht geklickt und ich bekomme keine Ausnahme.Checkbox ist ausgewählt, kann aber nicht mit Selenium geklickt werden

<input name="include_notice" onclick="javascript:TogglePublishDates();" type="checkbox"> 

Picture of highlighted checkbox

Ich identifiziere diese Checkbox mit Namen und versuchte sendkeysReturn und sendKeysEnter verwenden.

Hinweis: Dieser Testfall lief für eine ziemlich lange Zeit gut. Im Selenium Web-Treiber oder Firefox wurden keine Änderungen vorgenommen.

+0

Bitte versuchen Sie zweimal zu klicken. – Liniel

+0

Könnten Sie bitte auch sicherstellen, dass Sie dieses bestimmte Element eindeutig identifizieren? – Mikhail

Antwort

1

können Sie versuchen, mit Java-Skript zu klicken, wie unten dargestellt:

JavascriptExecutor e = (JavascriptExecutor)wd; 
e.executeScript("arguments[0].click();", driver.findElement(By.name("include_notice"))); 

Wenn Sie immer noch das inkonsistente Verhalten beobachten, Sie mögen den Wiederholungsmechanismus implementieren, wie unten dargestellt:

//1) Finding the check box 
    WebElement checkBox = driver.findElement(By.name("include_notice")); 
    //2) Checking whether check box is already checked 
    if (!checkBox.isSelected()) { 
     JavascriptExecutor e = (JavascriptExecutor)wd; 
     e.executeScript("arguments[0].click();", checkBox); 
     //3) Checking whether first attempt to check the check box worked 
     if (!checkBox.isSelected()) { 
      //4) Retrying 
      checkBox.click(); 
     } 
    } 

Lassen Sie mich wissen, wenn Sie weitere Fragen haben.

1

Sie können mit diesen unter Codes versuchen:

driver.findElement(By.name("include_notice")).click(); //find checkbox element and click on it. 

Klicken Sie Checkbox Java-Script Executor verwenden.

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

Wenn Checkbox bereits ausgewählt ist, verwenden Sie diesen Code.

WebElement checkbox = driver.findElement(By.name("include_notice")); 
if (!checkBox.isSelected())  //checkbox is not selected then only it will select the checkbox. 
{ 
    checkBox.click(); 
    System.out.println(checkbox.isSelected()); 
} 
+0

Hilft dir meine Erklärung des Codes? Wenn dies der Fall ist, markieren Sie diese Antwort bitte als "Akzeptiert" –

Verwandte Themen