无法使用Selenium(Java)选择特定复选框

时间:2014-06-08 15:09:08

标签: java html selenium xpath checkbox

我想点击下一页

上的Store Pickup Available复选框
http://www.target.com/c/pants-shorts-baby-toddler-boys-clothing/-/N-59yk1#navigation=true&viewType=medium&sortBy=newest&isleaf=true&navigationPath=59yk1&parentCategoryId=9976007&facetedValue=/-/N-59yk1&RatingFacet=0&categoryId=139007

特定的HTML部分有

<input type="checkbox" name="facetId" id="in store, onlineCheckbox3" 
value="10058540" omniture="Store Pickup Eligible">

我尝试过很多东西By.id(),By.cssSelector()和xpath。

有人可以尝试告诉我工作代码吗...介于两者之间我会继续尝试。

3 个答案:

答案 0 :(得分:0)

它将选择您需要写的By.id

<input type="checkbox" name="facetId" id="facetId" 
value="10058540" omniture="Store Pickup Eligible">

答案 1 :(得分:0)

问题是您要点击的复选框最初是隐藏的。您可以使用以下内容单击它:

driver.findElement(By.xpath("//a[contains(text(),'in store, online')]")).click();
driver.findElement(By.xpath("//span[contains(text(),'Store Pickup Eligible')]/../../input")).click();

这将在商店,在线&#34;中展开元素&#34;然后点击标有&#34; Store Pickup Eligible&#34;的复选框。

答案 2 :(得分:0)

您可以使用CSS找到此复选框:[id*='onlineCheckbox3']。正如Richard所说,您必须先单击类别以显示元素。通过以下方式查找:[id=dimensions]>ul>li:nth-child(9) a。有时单击一个不起作用(取决于html结构),你必须单击锚点内的一个元素,将其交换为span,它应该工作。在定位元素时我更喜欢所有CSS选择器,但您可以使用您喜欢的任何方法。