C# 在C中使用XPath选择单选按钮#
我正在尝试使用XPath命令选择特定的单选按钮:C# 在C中使用XPath选择单选按钮#,c#,selenium,xpath,selenium-webdriver,radio-button,C#,Selenium,Xpath,Selenium Webdriver,Radio Button,我正在尝试使用XPath命令选择特定的单选按钮: driver.FindElement(By.XPath("//td[contains(@input id, 'SearchTypePatientNameDob')]")).Click(); 包含我想要的按钮的列表如下所示: <tr> <td> <input id="RadioButtonSearchTypePatientNameDob" type="radio" value="Sear
driver.FindElement(By.XPath("//td[contains(@input id, 'SearchTypePatientNameDob')]")).Click();
包含我想要的按钮的列表如下所示:
<tr>
<td>
<input id="RadioButtonSearchTypePatientNameDob" type="radio" value="SearchTypePatientNameDob" name="SearchType">
<span class="Instructions">Patient Name / Patient Date of Birth</span>
</td>
</tr>
患者姓名/患者出生日期
我的命令找不到选择/单击它的按钮。任何建议都会非常有用。您需要找到
输入
元素,而不是td
元素:
//input[contains(@id, 'SearchTypePatientNameDob')]
请注意,我看不到任何合理的理由为什么您不使用简单的By.Id
定位器:
driver.FindElement(By.Id("RadioButtonSearchTypePatientNameDob")).Click();
您可能还需要明确说明。@Rinktacular好的,可能有多种原因。首先,您是否在页面上看到任何iframe/frame元素?谢谢。@rinktagular我还添加了一个指向答案的链接,提供了等待元素出现的方法。@rinktagular是的,如果元素在iframe中,为了定位元素,您需要使用
驱动程序切换到iframe
。switch to().Frame()
@rinktagular不,驱动程序。switch to().Frame()(“childFrame”);
@rinkTaguar它是页面上唯一的iframe吗?如果是,您可能需要等待此iframe元素出现在DOM中(请按照答案中的链接进行操作)。谢谢。