我的页面上有几个复选框,其中很少有默认选中的。 通过我的代码,我需要处理页面上所有文本框的取消选中,然后继续。
问题是复选框(选中和未选中)具有完全相同的 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>
我想要一个定位器,这样我就可以获取选中或未选中的属性,然后取消选中已选中的属性。
最佳答案
您可以尝试在复选框元素上执行一些 Javascript 来获取值。
after_value = driver.execute_script
("return window.getComputedStyle(document.querySelector('.someclasslabel'),':after')
.getPropertyValue('content');")
这有点 hack,但值得一试。
关于html - 如何在 Selenium 定位器中定位 "::after"元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58245028/