Selenium WebDrivers - 无法选择没有名称的动态复选框

时间:2014-12-10 11:51:32

标签: selenium

<div id="checkboxfield-3844" class="x-field x-form-item x-field-default x-form-cb-checked x-form-dirty" style="width: 492px;">
    <label id="checkboxfield-3844-labelEl" class="x-form-item-label x-form-item-label-left" style="margin-right:5px;width:200px;" for="ext-gen6460">Is Stitching Point:</label>
    <div id="checkboxfield-3844-bodyEl" class="x-form-item-body x-form-cb-wrap" role="presentation" style="width: 287px;">
        <input id="ext-gen6460" class="x-form-field x-form-checkbox" type="button" hidefocus="true" autocomplete="off" aria-checked="true" aria-invalid="false" role="checkbox" aria-describedby="checkboxfield-3844-errorEl" style="-moz-user-select: text;" data-errorqtip="">
    </div>
    <div id="checkboxfield-3844-errorEl" class="x-form-error-msg" style="display:none"></div>
    <div class="x-clear" role="presentation"></div>
</div>

这是我的Div,因为没有名字所以我无法选择复选框。需要一些帮助

1 个答案:

答案 0 :(得分:0)

假设只有一个'label标签',innerHTML / text为“Is Stiching Point:”,下面的xpath将指向复选框: -

driver.findElement(By.xpath("//label[.='Is Stitching Point:']/..//input[@role='checkbox']")).click();

注意:以上是一段java代码。如果您使用不同的语言绑定,您可以参考它来使用相同的东西。

修改

以下是使用 JavascriptExecutor 的替代方式:

WebElement element  = driver.findElement(By.xpath("//label[.='Is Stitching Point:']/..//input[@role='checkbox']"));
((JavascriptExecutor)driver).executeScript("arguments[0].click();", element);