亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

[selenium webdriver Java]使用自定義條件同步

系統 2125 0

Selenium WebDriver可以結合ExpectedCondition類來定義自己期望的條件

創建一個新的ExpectedCondition接口,必須實現apply方法

?

等待元素出現

        
           1
        
        
          public
        
        
          void
        
        
           testWithImplicitWait(){


        
        
           2
        
             System.setProperty("webdriver.chrome.driver", "chromedriver.exe"
        
          );


        
        
           3
        
             WebDriver driver = 
        
          new
        
        
           ChromeDriver();


        
        
           4
        
             driver.get("http://map.baidu.com"
        
          );


        
        
           5
        
        
           6
        
        
          //
        
        
          點擊展開當前城市
        
        
           7
        
                 WebElement curCity = driver.findElement(By.id("curCity"
        
          ));


        
        
           8
        
        
              curCity.click();


        
        
           9
        
        
          10
        
        
          //
        
        
          設置等待時間10秒
        
        
          11
        
             WebDriverWait wait = 
        
          new
        
         WebDriverWait(driver,10
        
          );


        
        
          12
        
        
          //
        
        
          創建一個新的ExpecctedCondition接口,就必須實現apply方法
        
        
          13
        
             WebElement message =
        
           wait.until(


        
        
          14
        
        
          new
        
         ExpectedCondition<WebElement>
        
          (){


        
        
          15
        
        
          public
        
        
           WebElement apply(WebDriver d){


        
        
          16
        
        
          return
        
         d.findElement(By.id("selCityHotCityId"
        
          ));


        
        
          17
        
        
                          }


        
        
          18
        
        
                      }


        
        
          19
        
        
                      );


        
        
          20
        
        
          21
        
        
                  driver.quit();


        
        
          22
        
             }    
      
示例代碼

?

等待元素屬性值改變

基于某些事件的操作后,元素的屬性值可能會改變。例如,一個不可輸入的文本框變為可輸入狀態。自定義的等待可以在元素的屬性上實現。

在這個例子中,ExpectedCondition類將等待返回Boolean值

?

      
        1
      
       (
      
        new
      
       WebDriverWait(driver, 10).util(
      
        new
      
       ExpectedCondition<Boolean>
      
        (){


      
      
        2
      
      
        public
      
      
         Boolean apply(WebDriver d){


      
      
        3
      
      
        return
      
       d.findElement(By.id("username"
      
        )).


      
      
        4
      
       getAttribute("readonly").contains("true"
      
        );  


      
      
        5
      
      
            }


      
      
        6
      
       }));
    

?

等待元素變為可見

開發人員會隱藏或是在一系列操作后顯示某元素。指定的元素一開始已經存在于DOM中,但是為隱藏狀態,當用戶經過指定的操作后變為可見。那么這樣的自定義期望條件應該如下:

      
        1
      
       (
      
        new
      
       WebDriverWait(driver, 10).util(
      
        new
      
       ExpectedCondition<Boolean>
      
        (){


      
      
        2
      
      
        public
      
      
         Boolean apply(WebDriver d){


      
      
        3
      
      
        return
      
       d.findElement(By.id("xxx"
      
        )).isDisplayed();  


      
      
        4
      
      
            }


      
      
        5
      
       }));
    

?等待DOM事件

自定義的等待可以通過執行一段javascript代碼并檢查返回值來完成

      
        1
      
       (
      
        new
      
       WebDriverWait(driver,10)).until(
      
        new
      
       ExpectedCondition<Boolean>
      
        (){


      
      
        2
      
      
        public
      
      
         Boolean apply(WebDriver d){


      
      
        3
      
       JavascriptExecutor js =
      
         (JavascriptExecutor) d;


      
      
        4
      
      
        return
      
       (Boolean)js.executeScript("return jQuery.active == 0"
      
        );


      
      
        5
      
      
        }


      
      
        6
      
       });
    

?

[selenium webdriver Java]使用自定義條件同步測試


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久福利资源网站免费看 | 国产精品久久网 | 日韩一区国产二区欧美三 | 亚洲国产精品yw在线观看 | 久久久穴 | 亚洲视频中文字幕在线 | 一级毛片中文字幕 | 黄色在线免费看 | 99在线观看视频 | 香蕉视频在线看 | 日本不卡高清免费v | 天天操夜夜摸 | 国产福利在线小视频 | 国产精品一区久久精品 | 久久天天躁狠狠躁夜夜中文字幕 | 国产欧美成人一区二区三区 | 在线看一级片 | 中文字幕一区二区三区亚洲精品 | 精品国产日韩久久亚洲 | 九九视频在线 | 午夜久久免费视频 | 爱爱视频欧美 | 一区二区三区四区国产精品 | 日韩欧美一区二区三区不卡 | 99精品国产兔费观看66 | 亚洲视频在线观看免费视频 | 欧美一区二区三区黄色 | 欧美xxxwww | 色综合网址 | 97精品国产手机 | 99久久综合九九亚洲 | 欧美综合精品一区二区三区 | 九九热热| 天码毛片一区二区三区入口 | 天天天干干干 | 亚洲精品亚洲九十七页 | 免费看国产一级特黄aa大片 | 久久精品成人免费网站 | 亚洲高清色 | 精品精品国产自在久久高清 | 俺来也欧美亚洲a∨在线 |