2016-10-06 2 views
2

Hier ist die site. Ich muss Kontrollkästchen in selen webdriver auswählen. CodeWie wähle ich ein Kontrollkästchen in selen webdriver 2 aus?

<div class="login-form__checkbox"> 
 
    <div class="fblock active"> 
 
    <div class="focusbox"> 
 
     <span class="abs" style="width:0px; height:0px; overflow:hidden; font-size:0px; zoom:1;"> 
 
     <input id="checkbox_accept-terms" type="checkbox" name="register[rules]"/> 
 
     </span> 
 
     <label class="icon f_checkbox inlblk vtop selected" relname="register[rules]"    for="checkbox_accept-terms"/> 
 
     <label class="selected" for="checkbox_accept-terms"> 
 
     <strong>Rules</strong>                                        
 
     </label> 
 
    </div> 
 
    </div> 
 
</div>

Ich habe versucht:

driver.findElement(By.id("checkbox_accept-terms")).click(); 

und

driver.findElement(By.xpath("//span[@id='checkbox_accept-terms']/div[3]/div/div/label[1]")).click(); 

Antwort

1

Ich versuchte, die INPUT direkt klicken, aber es hat nicht, dass aus irgendeinem Grund erlauben. Sie können einfach auf die LABEL klicken und es das Kontrollkästchen aktiviert. Dieser Code funktioniert.

0

Dies ist der XPath ist das gibt Chrom während Element Inspektion.

//*[@id="registerForm"]/div[3]/div/div/label[1] 

Dies ist die relative XPath, die für mich gearbeitet:

//label[@class="icon f_checkbox inlblk vtop"] 
0

Sie können die Aufgabe auch mit JavaScriptExecutor ausführen, mit denselben Locators, mit denen Sie versucht haben. Sehen Sie sich das folgende Code-Snippet an:

JavascriptExecutor jse = (JavascriptExecutor) driver; 
WebElement element = driver.findElement(By.id("checkbox_accept-terms")); 
jse.executeScript("arguments[0].click();", element); 
Verwandte Themen