Selenium不会选中复选框,如何正确引用该复选框?

时间:2016-06-28 15:11:43

标签: c# checkbox selenium-webdriver

我无法使用Selenium-Webdriver脚本检查Susie的复选框。我尝试过使用单击和发送空格键,以及更改我的xpath。有人可以帮我找一个方法来指明我需要Susie的复选框,还帮我点击它吗?

页上的HTML

<tr class="dataRow">
    <td class="jtable-selecting-column">
         <input type="checkbox">
    </td>
    <td class=" FirstName ">Laura</td>
    <td class=" LastName ">Test</td>
    <td class=" SMSNumber ">4444444444</td>
    </tr>
<tr class="dataRow">
    <td class="jtable-selecting-column">
         <input type="checkbox">
    </td>
    <td class=" FirstName ">Susie</td>
    <td class=" LastName ">Test</td>
    <td class=" SMSNumber ">5555555555</td>

我的代码

WebDriverWait waitPlease = new WebDriverWait(webDriver, TimeSpan.FromSeconds(10));
IWebElement myDynamicElement = waitPlease.Until<IWebElement>(d => d.FindElement(By.ClassName(" FirstName ")));   

clickButtonWithXPath(“/ HTML /体/格[3] / DIV [1] / DIV [2] / DIV [2] / DIV [2] / DIV [1] / DIV /表/ tbody的/ TR [4 ] / TD [1] /输入“);

错误

读取“System.InvalidOperationException:未知错误:元素在点(192,464)处不可点击。其他元素将收到点击:...

1 个答案:

答案 0 :(得分:0)

事实证明XPath工作正常,但脚本没有等待足够长的时间。不幸的是,Thread.sleep(5000)是我发现有效工作的唯一等待。

编辑:非常感谢大家!事实证明,使用xpaths是一种可靠的方式来引用复选框,但需要指示Selenium在尝试单击它之前等待。 这样做的最好方法是明确等待。我在“预期条件”下的this文档页面上使用了代码。