《手把手教你》系列技巧篇(四十)-java+ selenium自動化測試-JavaScript的調用執行-下篇(詳解教程)

1.簡介

 在實際工作中,我們需要對處理的元素進行高亮顯示,或者有時候為了看清楚做跟蹤滑鼠點擊了哪些元素需要標記出來。今天宏哥就在這裡把這種測試場景講解和分享一下。

2.用法

  創建一個執行 JS 的對象,也就是 JavascriptExecutor 對象,這個對象是由 driver 進行強制類型轉換而來,即JavascriptExecutor js= (JavascriptExecutor)driver;然後這個對象 js 就可以調用 executeScript 方法來執行一段 JS,這段 JS 的語句是以一段字元串的形式給傳參到 executeScript 中去的。

//執行方式
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("js程式碼");

3.場景三

利用JS處理元素高亮顯示。其實這個前邊在程式碼中也有實現過,只不過沒有提到可能沒有注意或者看到過,宏哥在這裡就講解一下。

4.實際案例(場景三)

4.1程式碼設計

4.2參考程式碼

/**
 * 
 */
package lessons;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author 北京-宏哥
 * 
 * 《手把手教你》系列技巧篇(四十)-java+ selenium自動化測試-JavaScript的調用執行-下篇(詳解教程)
 *
 * 2021年11月5日
 */
public class AddColor {
    
public static void main(String[] args) throws Exception {  
        
        System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");  
           
        WebDriver driver = new ChromeDriver();  
     
        driver.manage().window().maximize();  
       
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
          
        driver.get("//www.baidu.com/");  
       
        Thread.sleep(2000);
        
        // 點擊登錄
        driver.findElement(By.xpath("//*[@id='u1']/a")).click();
        Thread.sleep(500);
        
        WebElement username = driver.findElement(By.id("TANGRAM__PSP_11__userName"));
        
        // 創建一個JavascriptExecutor對象
        JavascriptExecutor js= (JavascriptExecutor)driver;
        
        username.sendKeys("abcdefg");
        
        // 設置顏色
        js.executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 2px solid red;');",username);
        
        WebElement password = driver.findElement(By.id("TANGRAM__PSP_11__password"));
        js.executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 2px solid red;');",password);
        
        WebElement submit = driver.findElement(By.id("TANGRAM__PSP_11__submit"));
        js.executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 2px solid red;');",submit);
        
       
    }  

}

4.3運行程式碼

1.運行程式碼,右鍵Run AS->Java Appliance,控制台輸出,如下圖所示:

2.運行程式碼後電腦端的瀏覽器的動作,如下小影片所示:

5.小結

 這種辦法可以幫你清楚的看到那些功能執行了,那些沒有執行,不方便的前期需要編寫程式碼添加顏色。對滑鼠都點擊走過的路線進行一個追蹤。好了,時間不早了,今天就分享和講解到這裡,感謝大家耐心的閱讀,喜歡宏哥的,別忘記在文章末尾支援一下。