html - 如何在 Selenium 定位器中定位 "::after"元素?

标签 html css selenium xpath

我的页面上有几个复选框,其中很少有默认选中的。 通过我的代码,我需要处理页面上所有文本框的取消选中,然后继续。

问题是复选框(选中和未选中)具有完全相同的 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/

相关文章:

html - Ckeditor 4 - 如何更改包括下划线在内的链接颜色?

javascript - HTML5 音频标签即使在被删除后也拒绝停止播放?

c# - 使用 Selenium 选择元标记

java - 如何使用带有 Java 的 Selenium WebDriver 关闭特定窗口?

html - 使用 NODE.JS 和 html5 的低延迟 (50ms) 视频流

html - 如何在我的案例中设置多个类

jquery - 使用 HTML 和 CSS 的半砖图像布局

javascript - Selenium:单击 "<div><a></a></div>"按钮

css - 我不知道如何将我的 div 内容居中

jquery - 在 CSS 中的叠加层上显示背景图像