Как использовать selenium.waitForCondition (script, timeout) в Webdriver 2/3 - PullRequest
0 голосов
/ 25 марта 2019

Фреймворк, который мы использовали в Selenium-RC, теперь мы конвертируем его в Webdriver.Я попытался найти альтернативный код ниже единицы, но не смог найти.

Поскольку код используется n раз в структуре, приоритетное значение для исправления

**selenium.waitForCondition(script, timeout);**

//Полный код приведен ниже

public void waitForAjaxToComplete() {
        String waitCondition = "";
        for (JsToolkit kit : JsToolkit.values()) {
            waitCondition += waitCondition.equalsIgnoreCase("") ? kit.waitCondition() : " && " + kit.waitCondition();
        }
        waitCondition += " && (null == selenium.browserbot.getCurrentWindow().event)";
        try {
            selenium.waitForCondition(waitCondition, getDefaultPageWaitTime());
        } catch (Exception e) {
            logger.warn(e.getMessage());
        }
    }

// Набор инструментов JS представляет собой ENUM

public enum JsToolkit {
    DOJO("dojo", "dojo.io.XMLHTTPTransport.inFlight.length==0"), EXTJS("Ext",
            "Ext.Ajax.isLoading()==false"), JQUERY("jQuery", "jQuery.active==0"), YUI("YAHOO",
                    "YAHOO.util.Connect.isCallInProgress==false"), PHPJS("PHP_JS",
                            "PHP_JS.resourceIdCounter==0"), PROTOTYPE("Ajax", "Ajax.activeRequestCount==0");

    String identifier;
    String expr;

    private JsToolkit(String identifier, String expr) {
        this.identifier = identifier;
        this.expr = expr;
    }



    public String waitCondition() {
        return "return " + getExpr() +";";
    }

    public static String globalWaitCondition() {
        StringBuilder sb = new StringBuilder("return ");
        for(JsToolkit toolkit: JsToolkit.values()){
            sb.append(" ("+ toolkit.getExpr() + ") &&");
        }
        sb.append(";");
        return sb.toString().replace(" &&;", ";");
    }

    public String getExpr(){
        return "((typeof "+ identifier +" === 'undefined') || (" + expr + "))";
    }
}

Selenium RC ---> selenium.waitForCondition (script, timeout);Selenium WebDriver ----> ????

1 Ответ

0 голосов
/ 25 марта 2019

Я не уверен, что понял ваш вопрос.

Вы ищете способ делать неявные и явные ожидания с использованием Selenium WebDriver?

Если так, может быть, вы можете проверить это? Команды ожидания Selenium WebDriver

...