我在webapp上有以下复选框,我正在创建selenium脚本。 我遇到的问题是我的脚本无法找到此复选框。
我的代码:
WebDriverWait wait = new WebDriverWait(SELENIUMWebDriver.Driver, TimeSpan.FromSeconds(30));
wait.Until(ExpectedConditions.ElementIsVisible(
By.XPath("input[@ng-model=\"model['attributes']['3']['attributes']['38'].value\"]"))).Click();
<div class="checkbox" ng-class="{ disabled: form.schema.isDisabled }">
<label>
<input type="checkbox" ng-disabled="form.schema.isDisabled" ng-change="form.onChange(model['attributes']['3']['attributes']['38'].value, form)" ng-model="model['attributes']['3']['attributes']['38'].value" ng-model-options="::form.ngModelOptions" ng-true-value="::'True'" ng-false-value="::'False'" class="ng-pristine ng-untouched ng-valid ng-empty">
<span class="checkbox-label ng-binding" ng-bind="form.title">Registratie EVR/SFH?</span>
</label>
<div class="help-block ng-binding ng-hide" ng-show="::form.description" ng-bind-html="form.description"></div>
</div>
&#13;
我做错了什么?
答案 0 :(得分:0)
如果您有多个相同的className
复选框,请使用index
By.XPath("//input[@class='ng-pristine ng-untouched ng-valid ng-empty'][@type='checkbox'][1]");
<强>更新强>
By.XPath("//span[contains(text(),'Registratie')]/preceding-sibling::input[@class='ng-pristine ng-untouched ng-valid ng-empty'][@type='checkbox']");
答案 1 :(得分:0)
你能用这个xpath吗?
//span[contains(text(), 'Registratie EVR/SFH?')]/preceding-sibling::input
我看到这个值也可以改变语言。如果是这种情况,您可以添加&#34;或&#34;进入你的xpath所以要么是可以接受的。