【发布时间】:2014-07-29 05:44:54
【问题描述】:
我想点击下一页上的可用商店取货复选框
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。
有人可以尝试告诉我工作代码...在这之间我会继续尝试。
【问题讨论】:
-
该 HTML 有效吗?将两个值作为 ID 分配给元素是不合法的,并且 ID 不能有空格和逗号。那不是合法身份证。如果实际的 HTML 是这样的,而您正在尝试抓取它,则您将不得不依赖其他一些功能。
value属性是什么意思?是标识符吗?如果 HTML 如此糟糕,XPath 选择可能不起作用,但如果您认为value可能是标识符,您可以尝试//input[@value='10058540']。 -
@helderdarocha 我尝试使用 value .. 但使用 cssSelector() .. 它不起作用。我猜 ID 有空间是问题所在:\
-
解析不好的 HTML 并不容易。您可以尝试在其他元素、位置表达式上使用 XPath,并查看它们中的任何一个是否有效。也许如果您可以识别一个外部元素来定义一个上下文,然后简单地选择它可能工作的输入。比如:
//some-element[some-unique-condition]//input[some-relative-position].
标签: java html selenium xpath checkbox