这是我第一次在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);
}
暂无答案!
目前还没有任何答案,快来回答吧!