页面上的复选框很少,默认情况下很少选中。 通过我的代码,我需要处理页面上所有文本框的未选中状态,然后继续。
问题在于,复选框(选中和未选中)具有完全相同的HTML / DOM结构,具有相同的属性/值,但选中复选框时出现的“ :: after”除外。 我该如何编写定位器来找出该元素是选中还是未选中,然后继续取消选中它。
<!-- When checkbox is unchecked -->
<label class="someclasslabel" on-click="[[event]]">
<span>Male</span>
<input type="checkbox" data-bind="checked: $properties.value">
<span class="checkbox"></span>
</label>
<!-- When checkbox is checked -->
<label class="someclasslabel" on-click="[[event]]">
<span>Male</span>
<input type="checkbox" data-bind="checked: $properties.value">
<span class="checkbox">
::after
</span>
</label>
我想要一个定位器,这样我就可以获取属性是否选中或未选中,然后如果已经选中则取消选中。
答案 0 :(得分:0)
您可以尝试在复选框元素上执行一些Javascript以获取值。
after_value = driver.execute_script
("return window.getComputedStyle(document.querySelector('.someclasslabel'),':after')
.getPropertyValue('content');")
这有点hack,但值得一试。
答案 1 :(得分:0)
在获取所有复选框元素(使用相同的选择器)之后,无论是否选中它们,都可以循环遍历它们,并使用selected
方法检查它们是否被选中。 (C#参考Remote https://seleniumhq.github.io/selenium/docs/api/dotnet/,了解RemoteWebElement.Selected属性)。
如果.selected == true-》单击;如果未选中,则什么都不做;