從零搭建DevOps平臺環境(五)-selenium

文章目錄

準備環境

安裝docker

拉取鏡像

docker pull selenium/hub
docker pull selenium/node-chrome

創建網絡

docker network create --subnet=172.18.26.0/24 dockernet_br26

啓動容器

docker run -d -p 4444:4444 --net dockernet_br26 --ip 172.18.26.2 --name selenium-hub selenium/hub
docker run -d --net dockernet_br26 --ip 172.18.26.3 -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome

通過宿主機IP加上4444 端口進行訪問
http://IP:4444/wb/hub
在這裏插入圖片描述或者訪問 console http://ip:4444/wb/console
在這裏插入圖片描述
如此即爲安裝成功

編碼

這裏使用java進行編碼測試

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.Test;

import java.net.URL;
import java.time.Duration;

import static org.openqa.selenium.support.ui.ExpectedConditions.presenceOfElementLocated;

public class testRemote {

    @Test
    public void test1() {

        URL url = null;
        try {
            url = new URL("http://IP:4444/wd/hub/");
        } catch (Exception e) {
            System.out.println(e.getCause());
        }
        ChromeOptions chromeOptions = new ChromeOptions();
//        chromeOptions.setCapability("browserVersion", "81");
//        chromeOptions.setCapability("platformName", "linux");
        DesiredCapabilities DesiredCapabilities = new DesiredCapabilities("chrome", "83", Platform.LINUX);

        chromeOptions.addArguments("--headless");
//        chromeOptions.addArguments("--disable-extensions"); // disabling extensions
//        chromeOptions.addArguments("--disable-gpu"); // applicable to windows os only
//        chromeOptions.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
//        chromeOptions.addArguments("--no-sandbox");
        WebDriver driver = new RemoteWebDriver(url, chromeOptions);
        driver.get("http://www.baidu.com");
        System.out.println(driver.getTitle());
        driver.quit();
    }
}

控制檯打印:
百度一下,你就知道 即代表測試通過
這時我們就可以通過 WebDriver WebElement 編寫代碼實現自動化測試。但這樣有一點很不好的就是需要針對每一個功能去編寫對應的測試代碼。
編寫Bean 類獲取頁面元素

同樣我們也可以引入新的工具去實現自動錄入腳本代碼(badbody)。當然手寫的更靠譜一些,且目前因爲各大瀏覽器廠商的兼容性不同,不同的網站對於安全策略的使用方式不同的原因,自動錄入也會有一些限制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章