2014-02-26 130 views
0

我有下面的HTML代码来创建一个复选框,但XPath和CSS选择器无法识别它。还有另一种处理方法吗?需要Selenium元素选择帮助

<span class="checklist"> 
    <span class=""> 
     <input id="GenerateChargeFiles" type="checkbox" value="true" name="GenerateChargeFiles" data-val-required="The GenerateChargeFiles field is required." data-val="true"> 
     <input type="hidden" value="false" name="GenerateChargeFiles"> 
     <a class="checkbox-select">Check</a> 
     <a class="checkbox-deselect">Uncheck</a> 
    </span> 
</span> 
+1

那么什么选择您使用的? “不承认”意味着什么?它没有找到它? Selenium尝试错误?什么错误?如果发现它,它有什么作用? 'input'是隐藏的,所以如果你正在试图使用*那个*,它会抛出一个错误。 – Arran

+0

这里有缺少的信息是我们回答这个问题所需要的。当你点击输入元素时,我敢打赌DOM被重新加载,并且存在比你目前显示的更多的HTML。 – djangofan

回答

0

您试图使用哪种XPath? XPath id('GenerateChargeFiles')应该可以正常工作。下面的示例使用Python:

from selenium import webdriver 

browser = webdriver.Firefox() 
browser.get("C:\\Users\\Tetrinity\\Documents\\test.html") 
element = browser.find_element_by_xpath("id('GenerateChargeFiles')") 
element.click() 

...其中test.html包含:

<html><body> 
<span class="checklist"> 
    <span class=""> 
     <input id="GenerateChargeFiles" type="checkbox" value="true" name="GenerateChargeFiles" data-val-required="The GenerateChargeFiles field is required." data-val="true"> 
     <input type="hidden" value="false" name="GenerateChargeFiles"> 
     <a class="checkbox-select">Check</a> 
     <a class="checkbox-deselect">Uncheck</a> 
    </span> 
</span> 
</body></html> 
0
WebElement checkBox = getDriver().findElement(By.id("GenerateChargeFiles"))