【问题标题】:Unable to select checkbox using Selenium webdrive (c#)无法使用 Selenium webdriver (c#) 选择复选框
【发布时间】:2018-12-21 02:10:52
【问题描述】:

我已经为此困惑了几个小时。检查过 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,但删除了客户名称 :)

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)(驱动程序信息: 铬驱动程序=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),平台=Windows NT 10.0.17134 x86_64)

developer tools

这是勾选了复选框的开发人员工具的屏幕截图。会不会和“跨度”有关?

【问题讨论】:

  • this XPATH: "//div[2]/label/span" 不是一个健壮的...你找不到更好的吗?
  • 如果可以的话,如果你能添加网址也会有所帮助...
  • "//input[@type='checkbox'][@name='privacy']" 试试这个 xpath
  • 顺便说一句,尽量避免绝对xpath,当你没有任何其他选择时使用它。
  • 不幸的是,这不起作用。错误又产生了。

标签: c# selenium


【解决方案1】:

您点击的是SPAN 而不是INPUT 复选框。这应该可以。

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-11-10
      • 2020-04-25
      • 2017-06-09
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      相关资源
      最近更新 更多