无法使用Selenium WebDrive(c#)

时间:2018-12-20 16:49:40

标签: c# selenium

我已经为此困惑了几个小时。在Stackoverflow上检查了类似的问题,但是找不到解决方法。

我有一个复选框,我正在尝试使用Selenium Webdriver进行检查,但是当我运行脚本时,我没有收到任何错误消息,但此复选框未选中。

我正在使用以下行选择并选中该框

IWebElement checkBox = m_driver.FindElement(By.XPath("//div[2]/label/span"));
checkBox.Click();

我从下面复制了HTML。

<div class="input-group single-option label-empty" >
    <label class="" >
        <input type="checkbox" name="privacy" value="true"  required  />
            <span>I have read and understood the <a data-toggle="#privacy-terms" 
                  data-group="privacy-terms">Privacy Policy</a> and <a data-toggle=
                  "#terms" data-group="privacy-terms">Terms and Conditions</a>. </span>
    </label>

我真的很感谢您的帮助。我对自动化很陌生...还有C#

不幸的是,我无法发布该URL,因为它是一个带有密码的客户端站点。如果我可以发布HTML,那可能会有所帮助...

我已经从相关页面发布了html,但删除了客户名称:)

Link to HTML

如果我通过Chrome开发人员工具选中了该复选框并复制了Xpath,我就会明白。

IWebElement checkBox = m_driver.FindElement(By.XPath("/html/body/div[1]/main/section/form/div[2]/label/input"));

我重新运行它,Selenium产生了一个错误。

  

消息:OpenQA.Selenium.WebDriverException:未知错误:元素    不是   在(491,593)点可点击。其他元素将获得点击:   ...(会话信息:chrome = 71.0.3578.98)(驱动程序信息:   chromedriver = 2.45.615291   (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),平台= Windows NT   10.0.17134 x86_64)

developer tools

下面是选中该复选框的开发人员工具的屏幕截图。可能与“跨度”有关吗?

2 个答案:

答案 0 :(得分:1)

我知道了。而不是使用“ checkBox.Click();”,而是使用“ checkBox.SendKeys(Keys.Space);

,并且有效。现在,我正在尝试对Recaptcha做同样的事情,按照定义,这应该很困难。

答案 1 :(得分:0)

您正在单击SPAN而不是复选框的INPUT。这应该起作用。

m_driver.FindElement(By.CssSelector("input[name='privacy']")).Click();

您可能需要等待,具体取决于点击之前发生的情况。

关于元素的错误是不可点击的,可能是任何原因。可能是弹出窗口阻止了它,一个浮动的DIV面板,一个加载微调器,...等。您将需要处理弹出窗口(通过将其关闭等),浮动的DIV可能需要滚动页面,或者旋转器等待旋转器变得不可见。没有更多信息很难说。

相关问题