• Selenium Video Tutorials

Selenium - 环境搭建



Selenium Webdriver 可用于自动化 Web 应用程序的测试。Selenium 可以与多种语言一起使用,例如 Java、Python、Ruby 等。

让我们讨论如何使用 Java 设置 Selenium 的环境。Selenium 的安装可以通过以下步骤完成:

步骤 1 - 我们需要在本地系统中下载并安装 Java。这可以通过导航到以下链接来完成:

https://www.oracle.com/java

要更详细地了解如何设置 Java,我们可以参考以下链接:

https://www.youtube.com/watch?v=bxIZ1GVWYkQ

成功安装 Java 后,我们可以通过运行以下命令确认其安装:java(在命令提示符下)。

C:\java 

它将在屏幕上显示以下信息:

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 版本:

java –version

它将显示以下输出:

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 版本为 17.0.9。

我们还需要使用以下链接在系统中安装 Maven:

https://maven.apache.org/download.cgi。

要更详细地了解如何设置 Maven,我们可以参考以下链接:

https://tutorialspoint.com/maven/maven_environment_setup.htm

接下来,我们将通过运行以下命令确认已安装的 Maven 版本:

mvn –version

它将显示以下输出:

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 版本为 Apache Maven 3.9.6。

步骤 2 - 接下来,我们将安装 IntelliJ 编辑器来运行 Selenium 测试。市场上有许多可用的编辑器,例如:Eclipse、IntelliJ、Atom 等。使用这些编辑器,我们可以开始使用 Java 项目来启动我们的测试自动化。今天,我们将讨论如何在 IntelliJ 中设置我们的 Selenium 代码。

对于 IntelliJ 安装,应安装最新版本的 Java。

让我们开始吧:

步骤 1 - 使用以下链接导航到 IntelliJ 的官方网站(它是 Jetbrains 的产品),然后单击下载:

https://www.jetbrains.com/idea/。

Selenium Environment Setup 1

步骤 2 - 导航到下一页后,我们将获得在各种操作系统(如 Windows、macOS 和 Linux)中下载 IntelliJ 的选项。单击与您当前系统中使用的操作系统相对应的选项卡。

IntelliJ 有两个版本,付费版和社区版(免费版)。

Selenium Environment Setup 2

我们将下载社区版。为此,我们将导航到 IntelliJ IDEA 社区版部分,然后单击下载。

Selenium Environment Setup 3

在 macOS 中完成下载后,我们将 IntelliJ IDEA CE 文件从 Downloads 文件夹拖到 Applications 文件夹。

步骤 3 - IntelliJ 徽标应显示几秒钟,然后出现 JETBRAINS 社区版条款。选中复选框以接受条款和条件,然后单击继续。

步骤 4 - 欢迎使用 IntelliJ IDEA 应出现。单击新建项目按钮。

步骤 5 - 在名称:字段下输入名称。选择语言为 Java,构建系统为 Maven,以及 JDK 版本,然后单击创建。

步骤 6 - 输入 ArtifactId 并单击创建。

步骤 7 - IntelliJ 编辑器设置应已成功完成。

步骤 8 - 接下来,我们将从以下链接添加 Selenium Maven 依赖项:

https://mvnrepository.com

Selenium Environment Setup 4

步骤 9 - 选择并单击中央选项卡下的版本链接。我们导航到 Selenium Java>><version> 页面。复制 Maven 选项卡下的依赖项。

Selenium Environment Setup 5

依赖项示例:

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-java</artifactId>
   <version>4.11.0</version>
</dependency>

步骤 10 - 将步骤 9 中复制的依赖项粘贴到 pom.xml 文件中(位于 IntelliJ 工作区中创建的 Maven 项目下)。

步骤 11 - 在 Main.java 文件中添加以下代码。

示例

Main.java 类文件中的代码实现:

package org.example;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

public class Main {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // URL launch 
      driver.get("https://www.google.com");

      // get browser title after browser launch
      System.out.println("Browser title: " + driver.getTitle());

   }
}

pom.xml 文件中添加的依赖项:

<?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.11.0</version>
      </dependency>
   </dependencies>
</project>

步骤 11 - 右键单击并选择运行“Main.main()”选项。等待运行完成。

步骤 12 - Chrome 浏览器启动,我们在控制台中获得了输出 - 浏览器标题:Google,以及消息 Process finished with exit code 0,表示代码已成功执行。

输出

Browser title: Google

Process finished with exit code 0

此外,Chrome 浏览器启动,顶部显示消息Chrome 正在由自动化测试软件控制

要更详细地了解如何设置 Eclipse,我们可以参考以下链接:

https://tutorialspoint.com/eclipse/index.htm

Selenium 也可以与 Python 一起配置,为此我们需要 PyCharm 编辑器。要更详细地了解如何设置 PyCharm,我们可以参考以下链接:

https://tutorialspoint.com/pycharm/index.htm。

让我们再举一个例子,我们将启动浏览器并打开一个应用程序,最后退出浏览器。

示例

MainBrowserQuit.java 类文件中的代码实现。

package org.example;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

public class MainBrowserQuit {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();
      
      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // URL launch and get the browser title
      driver.get("https://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

在上面的示例中,我们首先启动了 Chrome 浏览器,然后检索了浏览器标题,然后退出了浏览器,并在控制台中收到了消息 - 启动后浏览器标题:Selenium Practice - 学生注册表单

最后,收到了消息Process finished with exit code 0,表示代码已成功执行。

因此,我们已成功完成了本教程中的 Selenium 环境设置。

广告