首页 > 解决方案 > 无法使用 Selenium webdrive (c#) 选择复选框

问题描述

我已经为此困惑了几个小时了。检查过 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#

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

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

链接到 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)

开发者工具

这是勾选了复选框的开发人员工具的屏幕截图。可能与“跨度”有关吗?

标签: c#selenium

解决方案


我想到了。我没有使用“checkBox.Click();”,而是使用了“checkBox.SendKeys(Keys.Space);

它有效。现在我正在尝试对 recaptcha 做同样的事情,根据定义,这应该是困难的。


推荐阅读