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;
我有一个简单的方法可以在多选中找到选定的选项并检查其值。这是:
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;