当前位置:网站首页>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 Java
、JavaScript
、Python
、C#
or Ruby
) Browser ( Such as Chrome
、Edge
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 ChromeDriver
、FirefoxDriver
、 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 …….
边栏推荐
- [groovy] groovy environment setup (download groovy | install groovy | configure groovy environment variables)
- JWT漏洞复现
- Unity implements the code of the attacked white flash (including shader)
- Cette ADB MySQL prend - elle en charge SQL Server?
- [groovy] string (string injection function | asBoolean | execute | minus)
- Blue Bridge Cup single chip microcomputer -- PWM pulse width modulation
- 官宣!第三届云原生编程挑战赛正式启动!
- An elegant program for Euclid‘s algorithm
- [2022 repair version] community scanning code into group activity code to drain the complete operation source code / connect the contract free payment interface / promote the normal binding of subordi
- Multimedia query
猜你喜欢
Clickhouse同步mysql(基于物化引擎)
C # use awaiter
一文带你了解BI的前世今身与企业数字化转型的关系
Talk about the SQL server version of DTM sub transaction barrier function
[an Xun cup 2019] not file upload
Huawei MPLS experiment
UE4 DMX和grandMA2 onPC 3.1.2.5的操作流程
The latest blind box mall, which has been repaired very popular these days, has complete open source operation source code
Use of kubesphere configuration set (configmap)
DMX parameter exploration of grandma2 onpc 3.1.2.5
随机推荐
About authentication services (front and back, login, registration and exit, permission management)
Assembly - getting started
ICSI213/IECE213 Data Structures
Logstash、Fluentd、Fluent Bit、Vector? How to choose the appropriate open source log collector
[web source code code code audit method] audit skills and tools
Deep learning - LSTM Foundation
An elegant program for Euclid‘s algorithm
Clickhouse synchronization MySQL (based on materialization engine)
【做题打卡】集成每日5题分享(第三期)
Huawei MPLS experiment
When sqlacodegen generates a model, how to solve the problem that the password contains special characters?
花了2晚,拿到了吴恩达@斯坦福大学的机器学习课程证书
Solve the problem that sqlyog does not have a schema Designer
ABP vNext microservice architecture detailed tutorial - distributed permission framework (Part 1)
問下,這個ADB mysql支持sqlserver嗎?
JWT漏洞复现
How rem is used
speed or tempo in classical music
JWT vulnerability recurrence
The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety