我的目标是检查网站上的复选框。 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 & 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”类型的未处理异常附加信息:元素当前不可见,因此可能无法与
进行交互
我尝试使用向下滚动代码,没有任何反应。
有任何帮助吗?感谢
答案 0 :(得分:2)
根据坐标点击事件。试试吧。
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()