硒化物测试无法与 Material 的复选框交互

Selenide test fails to interact with Material`s checkbox

亲爱的 Whosebugers。

我们在项目中使用 Selenide 框架为 UI 编写自动化测试。 我们最近切换到 Material-UI,在简单 checkbox 时遇到了技术问题。 我正在尝试 select 复选框。

SelenideElement rememberMeCheckBox = $(By.cssSelector("input[type=\"checkbox\"]"));

rememberMeCheckBox.setSelected(isSelected);

但是在这样做时我得到了一个例外:

Element should be visible {input[type="checkbox"]}
Element: '<input type="checkbox" value="on" displayed:false></input>'

确实,当我检查真实的 DOM 时,它包含 opacity: 0:

当我强制设置不透明度时,我的自动化测试运行良好。 如何处理?

这不是硒化物问题,而是硒的常见问题。 Selenium 将带有 "opacity: 0" 的元素定义为不可见。 参见 How to force Selenium WebDriver to click on element which is not currently visible?

启用此复选框的一种简单方法是单击其父元素:

$("input[type=\"checkbox\"]").parent().click();

至少对我有用。