【发布时间】:2017-09-16 23:00:46
【问题描述】:
大家好,好吧,所以我是 Selenium / Java / HTML 的相对(阅读:完整)新手,如果我问的很明显,我深表歉意。 我需要的是能够
- 单击特定复选框 1 和
- 如果选中了特定复选框 2,则取消选中它
这是网站 HTML:
特定复选框 1
<div class="checkbox">
<label id="agree_to_terms_label" for="agree_to_terms_join" class="visible">
<input id="agree_to_terms_join" name="agree_to_terms" type="checkbox" data-required="true" data-required-message="You need to agree to the *** Account Holder agreement" data-change="" class="parsley-validated">
<span class="left-block"></span>
I have read, understand and agree to the <a href="/terms-and-conditions/" target="_blank">*** Account Holder Agreement</a>
and acknowledge <a href="/privacy-policy" target="_blank">*** Privacy Policy</a>
<input type="hidden" name="agree_to_terms" value="yes">
</label>
</div>
特定复选框 2:
<div class="checkbox">
<label id="agree_to_offers_label" for="agree_to_offers" class="visible">
<span class="left-block">
<input id="agree_to_offers" name="agree_to_offers" type="checkbox" data-required-message="" data-change="" checked="checked" value="yes">
<span>By joining *** you'll be notified of exclusive offers and account updates via email</span>
</span>
</label>
</div>
我徒劳的尝试:
Xpath:
driver.findElement(By.xpath("//input[@id='agree_to_terms_join' and @type='checkbox']")).click();
元素不可见
driver.findElement(By.xpath("//*[@id='agree_to_terms_join']/parent::label")).click();
改为点击 div 中的 href 超链接
driver.findElement(By.xpath("//*[@id='agree_to_terms_label']/input")).click();
元素不可见
CSS:
driver.findElement(By.cssSelector("input[id = 'agree_to_terms_join'][type = 'checkbox']")).click();
元素不可见
by.className:
driver.findElement(By.className("checkbox")).click();
打开超链接
我浏览了论坛并看到提到的元素被隐藏了 - 但是我找不到任何 iframe 或任何其他似乎隐藏了窃听器的东西?
任何帮助将不胜感激!
【问题讨论】:
-
请检查是否是frame
-
您好,我检查了一个框架,但看起来没有。似乎由于其他原因它不可见(我还不知道)
-
你能分享网址吗
-
尝试使用 id Dear
标签: java html selenium xpath checkbox