【问题标题】:How to Click on a Checkbox Selenium如何单击复选框 Selenium
【发布时间】:2016-10-14 22:21:45
【问题描述】:

我的目标是选中网站上的复选框。 html:

<label class="checkbox" for="are_terms_agreed">
<input name="terms" id="are_terms_agreed" class="checkbox__input required-entry validate-checkbox" value="1" type="checkbox">
<span class="checkbox__span">
<i class="checkbox__icon"></i>
</span>
<span class="checkbox__title">
I have read and agree to the 
<span class="signup__label-terms">
<a onclick="return false;" href="https://shop.adidas.ae/en/help/terms-conditions.html" class="js-dialog-btn" data-target="js-dialog-terms">
Terms &amp; Conditions
</a>
for website use
</span>
</span>
</label>

原始链接:https://shop.adidas.ae/en/checkout/onepage/(您可能需要将鞋子添加到购物车并进行结帐流程才能查看我正在查看的页面)

我尝试了几种不同的方法来实现这一点。 首先,我尝试访问

IWebElement termsandconditions2 = driver.FindElement(By.XPath("//label[@class = 'checkbox']//label[@for = 'are_terms_agreed']"));

我得到错误:

WebDriver.dll 中出现“OpenQA.Selenium.NoSuchElementException”类型的未处理异常 附加信息:无法定位元素:{"method":"xpath","selector":"//label[@class= 'checkbox']//label[@for = 'are_terms_agreed']"}

我也试过了:

IWebElement termsandconditions = driver.FindElement(By.CssSelector("span[class*='checkbox__span']"));

这基本上是单击实际的“检查”图标,而不是像我之前尝试的那样检查整个框。当我运行它时,我得到了错误:

WebDriver.dll 中出现“OpenQA.Selenium.ElementNotVisibleException”类型的未处理异常附加信息:元素当前不可见,因此可能无法与之交互

我尝试使用向下滚动代码,没有任何反应。

有什么帮助吗?谢谢

【问题讨论】:

  • 它有'ID',使用driver.FindElement(By.Id("are_terms_agreed")).Click();
  • 错误:附加信息:元素当前不可见,因此可能无法与之交互
  • 试试 driver.FindElement(By.CssSelector("#co-terms-form > label:nth-child(2) > span.checkbox__span > i"));

标签: c# selenium checkbox


【解决方案1】:

根据坐标点击事件。试试看。

Actions action = new Actions(driver);
action.MoveToElement(driver.FindElement(By.Xpath("//*[@id='co-terms-form']/label[1]/span[1]")), 2, 2).Click().Perform();

或者:

driver.FindElement(By.Xpath("//*[@id='co-terms-form']/label[1]/span[1]").CLick()

【讨论】:

  • 嗨 Turgut,我在 [1] 中放了什么?还是我就这样离开它?
  • 就这样吧 :)。 “[1]”索引计数。但是 xpaths 的所有 web 元素都是不同的。
  • 没关系,彻底解决了问题。非常感谢你!
  • 你很高兴 :)
猜你喜欢
  • 1970-01-01
  • 2017-09-24
  • 2021-12-11
  • 2018-04-24
  • 2020-10-06
  • 2018-10-31
  • 1970-01-01
  • 2019-10-10
  • 2022-01-07
相关资源
最近更新 更多