【发布时间】: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,但删除了客户名称 :)
如果我通过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)
这是勾选了复选框的开发人员工具的屏幕截图。会不会和“跨度”有关?
【问题讨论】:
-
this XPATH: "//div[2]/label/span" 不是一个健壮的...你找不到更好的吗?
-
如果可以的话,如果你能添加网址也会有所帮助...
-
"//input[@type='checkbox'][@name='privacy']"试试这个 xpath -
顺便说一句,尽量避免绝对xpath,当你没有任何其他选择时使用它。
-
不幸的是,这不起作用。错误又产生了。