当前位置:网站首页>UI automation test farewell to manual download of browser driver

UI automation test farewell to manual download of browser driver

2022-07-05 03:49:00 Little brother said test

Thank you for your time

Everyone is doing UI When automating , What is the most annoying , Is it element positioning or browser and driver compatible debugging ? Let's move on

One .SeleniumWebDriver

SeleniumWebDriver Is a program that allows control Web Browser Library . It provides a cross browser API, Can be used to drive using different programming languages ( Such as JavaJavaScriptPythonC#  or Ruby) Browser ( Such as ChromeEdge or Firefox etc. ).Selenium WebDriver  The main purpose of is to realize Web Automated testing of applications .

SeleniumWebDriver Use the native support of each browser to automate . For this reason , We need to use Selenium WebDriver API A browser named Driver Binary file . Now the drivers of mainstream web browsers are ChromeDriver (Chrome) ,geckoDriver (Firefox) , perhaps msededriver (Edge).WebDriver API The communication with the driver binary file is called W3C WebDriver( Formerly known as JSON Wire Protocol) The standard agreement of . then , Use the native function of each browser to complete the communication between the driver and the browser .

We manually download the corresponding version of the corresponding browser according to different browsers and browser versions driver, Set system properties .

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");
System.setProperty("webdriver.edge.driver", "/path/to/msedgedriver");
System.setProperty("webdriver.opera.driver", "/path/to/operadriver");
System.setProperty("webdriver.ie.driver", "C:/path/to/IEDriverServer.exe");

We're doing it UI When automating, we often encounter browser upgrades that lead to driver Version mismatch problem , The solution is to manually download the corresponding version driver, For starters , It's not a simple job , Is there any way to automatically download the corresponding version according to different browsers driver Well ? The answer is yes , This is what we are talking about this time WebDriverManager. Yes Java and Python They all support it .

Two .WebDriverManager brief introduction

WebDriverManager It's an open source Java library , Of course, there are Python edition , It is executed in a fully automated way Selenium WebDriver Management of required drivers ( For example, download 、 Setup and maintenance ). in addition , In version 5 in ,WebDriverManager Other related functions are also provided , For example, find the browser installed in the local system , structure WebDriver object ( Such as ChromeDriverFirefoxDriver、 EdgeDriver etc. ) , stay Docker The browser runs seamlessly in the container , And monitoring function .

3、 ... and .WebDriverManager actual combat (Java edition )

1.pom.xml Add WebDriverManager rely on

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>5.0.3</version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </exclusion>
     </exclusions>
</dependency>

2. Create a new test script , To test the

import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author  author : The way test engineers grow up 
 * @version  Creation time :2022/7/3
 *  Class description : Automatic download Chrome Browser driven 
 */
public class OperateBrowserDriver {

    public static void main(String[] args) throws InterruptedException {
        WebDriverManager.chromedriver().setup();
        WebDriver driver = new ChromeDriver();
        driver.get("http://www.cnblogs.com/mrjade/");
        Thread.sleep(1000);
        driver.quit();
    }
}

3. Execution results

4.driver Storage path ( With Macos For example )

Four .WebDriverManager actual combat (Python edition )

1. install

pip install webdriver-manager

2. Use

# coding=utf-8 
'''
 @Author  :  The way test engineers grow up 
 @Time    : 2022/7/3 12:13
 @Desc    :  Methods described 
 @Software: PyCharm
'''
import time

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://www.baidu.com/")
time.sleep(5)
driver.quit()

3. Execution results

4.driver Storage path ( With Macos For example )

Four . Official documents

For more browser operations, please refer to the official website documentation
https://bonigarcia.dev/webdrivermanager/

Learning resource sharing

Finally, thank everyone who reads my article carefully , Watching the rise and attention of fans all the way , Reciprocity is always necessary , Although it's not very valuable , If you can use it, you can take it

These materials , For thinking 【 Advanced test development 】 For our friends, it should be the most comprehensive and complete war preparation warehouse , This warehouse also accompanied me through the most difficult journey , I hope it can help you ! Everything should be done as soon as possible , Especially in the technology industry , We must improve our technical skills . I hope that's helpful …….

原网站

版权声明
本文为[Little brother said test]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050335534365.html