Selenide测试无法与Material`s复选框进行交互

时间:2016-09-06 13:12:57

标签: material-ui selenide

亲爱的stackoverflowers。

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

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

enter image description here

当我通过强制设置不透明度时,我的自动化测试效果很好。 如何处理?

enter image description here

1 个答案:

答案 0 :(得分:3)

这不是Selenide问题,而是常见的Selenium问题。 Selenium将“不透明度:0”的元素定义为不可见。 见How to force Selenium WebDriver to click on element which is not currently visible?

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

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

至少它对我有用。