Selenium 简明教程
Selenium WebDriver - Installation
Selenium 是一种自动化测试,帮助我们对 Web 应用程序进行自动化测试。在安装 Selenium webdriver 之前,首先应该确定可以开发 Selenium 测试的语言,因为有支持 Selenium 的多种语言。
Selenium is a automation test which helps us to automate tests on web applications. Before installing Selenium webdriver, we should first identify a language in which the Selenium tests can be developed since there are multiple languages which supports Selenium.
Selenium Webdriver Installation with Java
Step 1 − 需要下载并安装 Java 到本地的系统。可以通过导航到链接 Java Downloads 进行下载安装。
Step 1 − We would need to download and then install Java in our local system. This can be done by navigating to the link Java Downloads
一旦成功安装 Java,我们可通过从命令提示符运行命令 java 来确认其安装。
Once we have successfully installed Java, we can confirm its installation by running the command: java, from the command prompt.
C:\java
它将在屏幕上显示以下信息 −
It will display the following information on the screen −
Usage: java [options] <mainclass> [args...]
(to execute a class)
or java [options] -jar <jarfile> [args...]
(to execute a jar file)
or java [options] -m <module>[/<mainclass>] [args...]
java [options] --module <module>[/<mainclass>] [args...]
(to execute the main class in a module)
or java [options] <sourcefile> [args]
(to execute a single source-file program)
Arguments following the main class, source file, -jar <jarfile>,
-m or --module <module>/<mainclass> are passed as the arguments to
main class.
where options include:
-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
--class-path <class search path of directories and zip/jar files>
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.
-p <module path>
--module-path <module path>...
A ; separated list of directories, each directory
is a directory of modules.
--upgrade-module-path <module path>...
A ; separated list of directories, each directory
is a directory of modules that replace upgradeable
modules in the runtime image
--add-modules <module name>[,<module name>...]
root modules to resolve in addition to the initial module.
<module name> can also be ALL-DEFAULT, ALL-SYSTEM,
ALL-MODULE-PATH.
--enable-native-access <module name>[,<module name>...]
modules that are permitted to perform restricted native operations.
<module name> can also be ALL-UNNAMED.
--list-modules
list observable modules and exit
-d <module name>
--describe-module <module name>
describe a module and exit
--dry-run create VM and load main class but do not execute main method.
The --dry-run option may be useful for validating the
command-line options such as the module system configuration.
--validate-modules
validate all modules and exit
The --validate-modules option may be useful for finding
conflicts and other errors with modules on the module path.
-D<name>=<value>
set a system property
-verbose:[class|module|gc|jni]
enable verbose output for the given subsystem
-version print product version to the error stream and exit
--version print product version to the output stream and exit
-showversion print product version to the error stream and continue
--show-version
print product version to the output stream and continue
--show-module-resolution
show module resolution output during startup
-? -h -help
print this help message to the error stream
--help print this help message to the output stream
-X print help on extra options to the error stream
--help-extra print help on extra options to the output stream
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions with specified granularity
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions with specified granularity
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:<libname>[=<options>]
load native agent library <libname>, e.g. -agentlib:jdwp
see also -agentlib:jdwp=help
-agentpath:<pathname>[=<options>]
load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see java.lang.instrument
-splash:<imagepath>
show splash screen with specified image
HiDPI scaled images are automatically supported and used
if available. The unscaled image filename, e.g. image.ext,
should always be passed as the argument to the -splash option.
The most appropriate scaled image provided will be picked up
automatically.
See the SplashScreen API documentation for more information
@argument files
one or more argument files containing options
--disable-@files
prevent further argument file expansion
--enable-preview
allow classes to depend on preview features of this release
To specify an argument for a long option, you can use --<name>=<value> or
--<name> <value>.
接下来,我们通过运行以下命令确认已安装的 Java 版本 -
Next, we would confirm the version of the Java installed by running the command −
java –version
它将显示以下输出 −
It will show the following output −
openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment Homebrew (build 17.0.9+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.9+0, mixed mode, sharing)
执行的命令的输出将表示系统中安装的 java 版本。
The output of the command executed would denote the java version installed in the system.
有关如何设置 Java 的更详细说明,请参阅链接 Java Environment Setup 。
To get a more detailed view on how set up Java, please refer to the link Java Environment Setup.
Step 2 - 使用链接 Downloading Apache Maven 在我们的系统中安装 Maven。
Step 2 − Install Maven in our system using the link Downloading Apache Maven.
接下来,我们将通过运行以下命令来确认已安装的 Maven 版本:
Next, we would confirm the version of the Maven installed by running the command −
mvn –version
它将显示以下输出 −
It will show the following output −
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /opt/homebrew/Cellar/maven/3.9.6/libexec
Java version: 21.0.1, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk/21.0.1/libexec/openjdk.jdk/Contents/Home
Default locale: en_IN, platform encoding: UTF-8
OS name: "mac os x", version: "14.0", arch: "aarch64", family: "mac"
输出的命令将表示系统中安装的 Maven 版本。
The output of the command executed would denote that the Maven version installed in the system.
Step 3 - 安装 IntelliJ 编辑器来运行硒测试。目前市面上有许多编辑器,例如:Eclipse, IntelliJ ,Atom,等等。使用这些编辑器,我们可以开始一个项目来启动我们对硒的测试自动化。
Step 3 − Install the IntelliJ editor to run the Selenium test. There are several editors available in the market for example: Eclipse, IntelliJ, Atom, and so on. Using these editors, we can start working on a project to start our test automation on Selenium.
Step 4 - IntelliJ 编辑器设置应已成功完成。
Step 4 − IntelliJ editor setup should be completed successfully.
Step 5 − 将以下代码添加到 Main.java 文件中。
Step 5 − Add the below code in the Main.java file.
Example 1
package org.example;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) throws InterruptedException {
// Initiate the Webdriver
WebDriver driver = new EdgeDriver();
// adding implicit wait of 15 secs
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
// URL launch
driver.get("https://www.tutorialspoint.com/selenium/practice/selenium_automation_practice.php");
// get browser title after browser launch
System.out.println("Browser title: " + driver.getTitle());
}
}
在 pom.xml 文件中添加的依赖项:
Dependencies added in pom.xml file −
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>SeleniumJava</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.19.0</version>
</dependency>
</dependencies>
</project>
Step 6 - 运行测试并等待执行完成
Step 6 − Run the test and wait for the execution to complete
Step 7 - Edge 浏览器已启动,我们已在控制台中获得了带有消息 Browser Title: Selenium Practice - Student Registration Form 和 Process finished with exit code 0 的输出,表示代码执行成功。
Step 7 − Edge browser got launched, and we had got the output in the console with the messages - Browser Title: Selenium Practice - Student Registration Form and Process finished with exit code 0, signifying successful execution of the code.
Browser title: Google
Process finished with exit code 0
与此同时,Edge 浏览器在顶部启动,带有消息 Edge is being controlled by automated test software 。
Along with that Edge browser got launched with the message Edge is being controlled by automated test software at the top.
Example 2
让我们再举一个例子,在这个例子中,我们将启动浏览器,打开一个 URL,获取浏览器标题,最后退出浏览器。
Let us take another example, where we would launch the browser, open a URL, get the browser title, and finally quit the browser.
package org.example;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import java.util.concurrent.TimeUnit;
public class MainBrowserQuit {
public static void main(String[] args) throws InterruptedException {
// Initiate the Webdriver
WebDriver driver = new EdgeDriver();
// adding implicit wait of 15 secs
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
// URL launch and get the browser title
driver.get("https://www.tutorialspoint.com/selenium/practice/selenium_automation_practice.php");
System.out.println( "Browser title after launch: " + driver.getTitle());
// close browser
driver.quit();
}
}
Browser title after launch: Selenium Practice - Student Registration Form
Process finished with exit code 0
在上面的示例中,我们首先启动 Edge 浏览器,然后检索浏览器标题,然后退出浏览器,并在控制台中收到消息 Browser title after launch: Selenium Practice - Student Registration Form 。
In the above example, we had first launched the Edge browser then retrieved the browser title and then quit the browser, and in the console received the message - Browser title after launch: Selenium Practice - Student Registration Form.
最后,收到了消息 Process finished with exit code 0 ,表示代码成功执行。
Finally, the message Process finished with exit code 0 was received, signifying successful execution of the code.
Conclusion
这结束了我们对硒安装教程的全面讲解。我们首先描述了使用 Java 安装 Selenium Webdriver,并通过示例说明如何在 Selenium Webdriver 中启动浏览器,然后退出浏览器。这让你深入了解了硒安装。明智的做法是继续练习你学到的内容,并探索其他与 Selenium 相关的知识,以加深你的理解并拓宽你的视野。
This concludes our comprehensive take on the tutorial on Selenium Installation. We’ve started with describing Selenium Webdriver installation with Java, and examples to illustrate how to launch a browser then quit it in Selenium Webdriver. This equips you with in-depth knowledge of the Selenium Installation. It is wise to keep practicing what you’ve learned and exploring others relevant to Selenium to deepen your understanding and expand your horizons.