【发布时间】:2016-06-23 18:17:06
【问题描述】:
我有一个问题,我无法使用id="same-supplier-no" 来点击输入类型 = "radio":
<label for="same-supplier-no" ng-class="{checked: !ctrl.energyModel.BillViewModel.SameSupplier}" class="">
<input type="radio" id="same-supplier-no" name="same-supplier" ng-model="ctrl.energyModel.BillViewModel.SameSupplier" ng-value="false" ng-change="ctrl.sameSupplierValueChanged(); ctrl.analyticsProvider.sendVirtualPageView('SameSupplierNo')" class="ng-pristine ng-untouched ng-valid" value="false">
<span></span>No
</label>
当我这样做时在 Selenium 中:
driver.findElement(By.id("same-supplier-no")).click();
它说“元素不可见”。 HTML 中有以前的单选按钮,上面有标签,它们有标签的 ID(这个没有)。 我只是参考标签 id 并单击它,它就可以工作。但是这个没有标签的 ID,我想避免使用 xpath,但是,如果我别无选择,那么我将通过 xpath/css 选择。
我也尝试过通过定位器名称,即 By.className("same-supplier");并使用 For 循环和 if 语句来存储输入 type=radio 元素,仍然不起作用。
问题是:为什么我不能点击输入类型=“收音机”,为什么Selenium 看不到?是因为它嵌套在标签内吗?如果是这样,有谁知道我可以如何使用 id 或仅访问元素来单击它?
谢谢。
注意:我将 Java 7 用于 Selenium。
【问题讨论】:
标签: java selenium selenium-webdriver cucumber-jvm