Selenium webDriver for PrimeFaces pickList组件。
https://www.primefaces.org/showcase/ui/data/pickList.xhtml
尝试将项目从源列表移动到目标列表:
Actions actions = new Actions(driver);
actions.doubleClick(sourceElement).build().perform();
也尝试过:
sourceElement.click(); // select
addButtonElement.click(); // move to right
尝试了100次。大约工作了50次。其余50次:将项目移至目标列表,然后又移回源列表。
我怀疑这可能是由于比赛状况所致。 pickList小部件本身可能正在初始化自身,例如绑定事件。查看了pickList javascript代码,等待其init()完成。也就是说,检查事件是否已绑定到按钮(添加,删除,...)。例如
ExpectedCondition<Boolean> condition = new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver driver) {
JavascriptExecutor executor = (JavascriptExecutor)driver;
return (Boolean)executor.executeScript(
"return jQuery._data(arguments[0], 'events')['click'] != undefined;", addButtonElement);
}
};
wait.until(condition);
Actions actions = new Actions(driver);
actions.doubleClick(sourceElement).build().perform();
但这没有帮助。
PickList小部件代码: