硒化物测试无法与 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();
至少对我有用。
亲爱的 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();
至少对我有用。