欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 宝鼎售后问题提交 | 后台管理


新闻资讯

MENU

软件开发知识

测试代码才会继续向后执行后续的测 劳务派遣信息管理系统 试逻辑 如果超过设定的最大显式等待时间阈值

点击: 次  来源:宝鼎软件 时间:2017-07-28

原文出处: 小坦克

我们常常会遇到用selenium操纵页面上某个元素的时候, 需要期待页面加载完成后, 才气操纵。 不然页面上的元素不存在,软件开发,劳务派遣管理系统,会抛出异常。

可能遇到AJAX异步加载,我们需要期待元素加载完成后, 才气操纵。

selenium 中提供了很是简朴,智能的要领,来判定元素是否存在。

实例要求

实例:set_timeout.html 下面的html 代码, 点击click 按钮5秒后, 页面上会呈现一个赤色的div快, 我们需要写一段自动化剧本智能的去判定这个div是否存在, 然后把这个div 然后高亮。

<html>
    <head>
        <title>Set Timeout</title>
        <style>
            .red_box {background-color: red; width = 20%; height: 100px; border: none;}
        </style>
        <script>
            function show_div(){
                setTimeout("create_div()", 5000);
            }
  
            function create_div(){
                d = document.createElement('div');
                d.className = "red_box";
                document.body.appendChild(d);
            }
        </script>
    </head>
    <body>
        <button id = "b" onclick = "show_div()">click</button>
    </body>
</html>

隐式期待

        WebDriver driver = new FirefoxDriver();
        driver.get("file:///C:/Users/Tank/Desktop/set_timeout.html");    
        
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        WebElement element = driver.findElement(By.cssSelector(".red_box"));      
        ((JavascriptExecutor)driver).executeScript("arguments[0].style.border = \"5px solid yellow\"",element);

个中

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

意思是, 总共期待10秒, 假如10秒后,元素还不存在,就会抛出异常。org.openqa.selenium.NoSuchElementException。 

显式期待

显式期待 利用ExpectedConditions类中自带要领, 可以举办显试期待的判定。

显式期待可以自界说期待的条件,用于越发巨大的页面期待条件。

测试代码才会继承向后执行后续的测 劳务调派信息打点系统 试逻辑 假如高出设定的最大显式期待时间阈值

只有满意显式期待的条件满意,软件开发,测试代码才会继承向后执行后续的测试逻辑

假如高出设定的最大显式期待时间阈值, 这测试措施会抛出异常。

public static void testWait2(WebDriver driver)
    {
        driver.get("E:\\StashFolder\\huoli_28@hotmail.com\\Stash\\Tank-MoneyProject\\浦东软件园培训中心\\我的课本\\Selenium Webdriver\\set_timeout.html");    
        
        WebDriverWait wait = new WebDriverWait(driver, 20);
        wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".red_box")));
        WebElement element = driver.findElement(By.cssSelector(".red_box"));      
        ((JavascriptExecutor)driver).executeScript("arguments[0].style.border = \"5px solid yellow\"",element);  
    }