find option by value error: invalid selector: An invalid or illegal selector was specified

find option by value error: invalid selector: An invalid or illegal selector was specified

我有一个简单的方法可以在多选中找到选定的选项并检查其值。这是:

public void checkArticleCategories(String cat1, String cat2)
{
    ElementsCollection options = $(byName("categories[]")).findAll(":selected");

    options.find(value(cat1)).shouldHave(value(cat1), ofSeconds(14));
    options.find(value(cat2)).shouldHave(value(cat2), ofSeconds(14));
}

但是 .shouldHave(value(cat1) 抛出一个错误:

invalid selector: An invalid or illegal selector was specified

所有类型都对。 shouldHave() 的参数如预期的那样是 Condition class 并且 value() 需要字符串。那有什么问题呢?

问题不在 options.find() 行上,而是在上面的 :selected 选择器中。正如 Selenide 框架的作者所写,有必要手动允许这种类型的选择器:

Configuration.selectorMode = SelectorMode.Sizzle;