Selenium webDriver для PrimeFaces, компонент pickList - PullRequest
1 голос
/ 18 мая 2019

Selenium webDriver для 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 может быть в процессе инициализации, например, событий привязки. Посмотрел код JavaScript pickList, дождался завершения его 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:

https://searchcode.com/codesearch/view/2686074/

...