硒 - 遵循快速加载指示灯(Selenium - follow fast loading indic

2019-10-16 12:22发布

我需要测试的数据表,它在每一个变化具有收纳指标。 有时候,这个指标是非常快的。 有没有为了遵循这些非常快的用户界面的变化硒任何最佳做法? (如加载指示符)。

Answer 1:

我用下面的C#来查询id和类已知载荷值DOM和等待它们不存在。 使用driver.FindElement(由*)尝试声明元素出现在给定的标识符,而不是寻找它,这将导致错误,是不是我们要找的行为。

public IWebDriver WaitForPage()
    {// Query document for loading elements until none found
        var wait = new WebDriverWait(driver,MyDefaultTimeout)
        .Until( 
            e => ((IJavaScriptExecutor)e) 
                .ExecuteScript(@"
                    var MyDefaultTimeout = 500; 
                    var loaded = false;
                    do {
                        var elementClasses = document.getElementsByClassName('//*[contains(@class=\'is-loading\') or contains(@class=\'fa-gear\') or contains(@class=\'loading\') and not(@class=\'displayed\')]');
                        var elementIds = document.getElementById('//*[contains(@id=\'hover-gear\') or contains(@id=\loading-gear\')]');
                        if((!elementClasses === null) || (!elementIds === null)){
                            setTimeout(function() { loaded = false }, MyDefaultTimeout);
                            }
                        else{ 
                            if(!document.readyState === 'complete'){
                                setTimeout(function() { loaded = false }, MyDefaultTimeout);
                                }
                            else{ 
                                loaded = true;
                                return document.readyState;
                                }
                            }
                        }
                    while(loaded === false);", null))
                .Equals("complete");
        return driver;
    }


文章来源: Selenium - follow fast loading indicator