selenium不能在select下拉菜单上激发onchange

62o28rlo  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(288)

这是我第一次在select中遇到selniumwebdriver无法启动onchange的问题。
代码和往常一样:

Select country = new Select(driver().findElement(By.id("address.country")));
country.selectByValue("dk");

当测试运行时,至少在界面上成功地选择了国家,但当我单击提交表单时,它会显示“未填写必填字段”,并在这个国家高亮显示。当我手动点击选择一个国家,然后它的工作。
我看到这个国家有3个项目 blur , change 以及 focus . 所以我在选择一个国家后,尝试用javascript触发它,如下所示:

js().executeScript("arguments[0].onchange", country);

但也没用。前端框架是nuxt.js(vju)
有什么想法吗?谢谢
更新
尝试了@konstantinpribluda的建议,作为下面的检查方法,但也没有帮助

public Boolean isDropdownChanged(WebElement element) {
    WebDriver driver = ((RemoteWebElement)element).getWrappedDriver();

    return (Boolean) ((JavascriptExecutor)driver).executeScript("" +
            "var target = document.evaluate(\"//*[@id='address.country']\", document.body, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null).iterateNext(); " +
                "   if(!target.disabled) {                  " +
                       "target.click();                     " +
                       "return true;                        " +
                    "}                                      " +
                    "return false;"
            , element);
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题