【发布时间】:2016-09-02 07:51:18
【问题描述】:
我正在用 c# 学习 selenium,我正在尝试获取 radio 的输入元素,但总是“无法找到元素”
<div>
<span id="ctl00_ContentPlaceHolder1_ucObservationSearch1_rblAdvancedSearch" class="radioListOptions">
<input id="ctl00_ContentPlaceHolder1_ucObservationSearch1_rblAdvancedSearch_0" type="radio" checked="checked" value="My" name="ctl00$ContentPlaceHolder1$ucObservationSearch1$rblAdvancedSearch">
<label for="ctl00_ContentPlaceHolder1_ucObservationSearch1_rblAdvancedSearch_0">My</label>
<br>
<input id="ctl00_ContentPlaceHolder1_ucObservationSearch1_rblAdvancedSearch_1" type="radio" onclick="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$ucObservationSearch1$rblAdvancedSearch$1\',\'\')', 0)" value="Workgroup" name="ctl00$ContentPlaceHolder1$ucObservationSearch1$rblAdvancedSearch">
<label for="ctl00_ContentPlaceHolder1_ucObservationSearch1_rblAdvancedSearch_1">Workgroup</label>
<br>
<input id="ctl00_ContentPlaceHolder1_ucObservationSearch1_rblAdvancedSearch_2" type="radio" onclick="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$ucObservationSearch1$rblAdvancedSearch$2\',\'\')', 0)" value="Division" name="ctl00$ContentPlaceHolder1$ucObservationSearch1$rblAdvancedSearch">
<label for="ctl00_ContentPlaceHolder1_ucObservationSearch1_rblAdvancedSearch_2">Division</label>
</span>
</div>
我试过了
ReadOnlyCollection<IWebElement> links1 = driver.FindElements(By.XPath("//input[contains(text(),'Workgroup')]"));
ReadOnlyCollection<IWebElement> links1 = driver.FindElements(By.XPath("//input[contains(@value,'Workgroup')]"));
IWebElement check = driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_ucObservationSearch1_rblAdvancedSearch_1"));
我也尝试在控制台中使用 javascript
document.getElementById("ctl00_ContentPlaceHolder1_ucObservationSearch1_rblAdvancedSearch_1").checked=true
return "TypeError: document.getElementById(...) is null" 我没有更多的解决方案,我需要一些帮助,谢谢
我发现这个html里面多了一个html,也许这就是为什么总是失败,有谁知道怎么处理?
【问题讨论】:
标签: javascript c# html