详解介绍Selenium常用API的使用--Java语言(史无前例的完整)

一共分为二十个部分:环境安装之Java、环境安装之IntelliJ IDEA、环境安装之selenium、selenium3浏览器驱动、selenium元素定位、控制浏览器操作、WebDriver常用方法、模拟鼠标操作、模拟键盘操作、获取断言信息、设置元素等待、定位一组元素、多表单切换、多窗口切换、下拉框选择、警告框处理、文件上传、浏览器cookie操作、调用JavaScript代码、获取窗口截屏;

(一)环境安装之Java1.安装java

点击 JDK8下载,根据自己的平台,选择相应的版本进行下载。

小知识:
Java环境分JDK和JRE ,JDK就是Java Development Kit。简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发
环境和运行环境。JRE是Java Runtime Enviroment是指Java的运行环境,是面向 Java 程序的使用者。

我们以 Windows安装JDK为例,双击下载的JDK,设置安装路径。这里我选择默认安装在“D:\Program Files\Java\jdk1.8.0_101”目录下。
下面设置环境变量:
“我的电脑” 右键菜单—>属性—>高级—>环境变量—>系统变量—>新建…

变量名: JAVA_HOME
变量值: D:\Program Files\Java\jdk1.8.0_101
变量名: CALSS_PATH
变量值: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

找到 path 变量名—>“编辑” 添加:

变量名: PATH
变量值: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

在Windows命令提示符(cmd)下验证 Java 是否成功:

> java
用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
其中选项包括:
    -d32          使用 32 位数据模型 (如果可用)
    -d64          使用 64 位数据模型 (如果可用)
    -client       选择 "client" VM
    -server       选择 "server" VM
                  默认 VM 是 client.
......


> javac
用法: javac  
其中, 可能的选项包括:
  -g                         生成所有调试信息
  -g:none                    不生成任何调试信息
  -g:{lines,vars,source}     只生成某些调试信息
  -nowarn                    不生成任何警告
  -verbose                   输出有关编译器正在执行的操作的消息
  -deprecation               输出使用已过时的 API 的源位置
  -classpath <路径>            指定查找用户类文件和注释处理程序的位置
.......
  • java 命令可以运行 class 文件字节码。
  • javac 命令可以将 Java 源文件编译为 class 字节码文件。
    能读者当前下载的 Java 版本与本书不同, 但安装方法是一样的。

(一)环境安装之IntelliJ IDEA

1.安装IntelliJ IDEA

你可能会问,为什么不用Eclipse呢?随着发展IntelliJ IDEA有超越Eclipse的势头,JetBrains公司的IDE基本上已经一统了各家主流编程语言的江湖。考虑到 Java IDE的流行趋势,本书中决定选用IntelliJ IDEA。
当然, 选择什么样的IDE充满着个人喜好。你依然可以参考其它资料安装Java IDE。这不会影响你阅读该系列文章。 点击 IntelliJ IDEA下载,根据自己的平台,选择相应的版本进行下载。
IntelliJ IDEA安装过程省略…
如果第一次打开IntelliJ IDEA,会看到如下界面。

点击”Create New Project”选项创建新的Java项目。选择项目类型为Java,然后,继续”Next”。

  • Project name: 项目名称。
  • Project location: 项目在硬盘上的路径。
    点击”Finish”结束项目创建完成。

2.编写Hello World!

首先,打开IntelliJ IDEA,点击左侧项目列表,在src下面创建包和类文件。
1)右键左侧项目列表 src—>New —> Package 弹出窗口, 输入包的名:javaBase。
2)右键左侧创建的包名:java —>New —> Java Class 弹出窗口, 输入类的名:HelloWorld。

在 HelloWorld.java 文件中编写第一个 Java 程序。


package com.java.base;
 
public class HelloWorld {
  public static void main(String[] args){
    System.out.println("hello world");
  }
}

输入完成, 点击工具栏 Run 按钮(或在代码文件中右键选择”Run ‘HelloWorld.main()’“)运行, 将会在控制台看到“hello word” 的输出。

(三)环境安装之Selenium

1.通过jar包安装

点击 Selenium下载 链接 你会看到Selenium Standalone Server的介绍:
The Selenium Server is needed in order to run Remote Selenium WebDriver. Selenium 3.X is no longer capable of running Selenium RC directly, rather it does it through emulation and the WebDriverBackedSelenium interface.
Download version 3.4.0
点击版本号进行下载,下载完成将会得到一个selenium-server-standalone-3.4.0.jar文件。
打开IntelliJ IDEA,导入.jar包。

点击菜单栏 File –> Project Structure(快捷键Ctrl + Alt + Shift + s) ,点击 Project Structure界面左侧 的“Modules” 。在“Dependencies” 标签界面下,点击右边绿色的“+” 号,选择第一个选项“JARs or directories…” ,选择相应的 jar 包,点“OK” ,jar包添加成功。

2.通过Maven安装

关于Maven安装又是另一个话题了。你可以参考其它资料学习在IntelliJ IDEA创建Maven项目。
MVN下载、idea & maven help、Maven仓库
打开pom.xml 配置Selenium。



    4.0.0
 
    com.mvn.demo
    MyMvnPro
    1.0-SNAPSHOT
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.6
                    1.6
                
            
        
    
 
    
 
        
        
            org.seleniumhq.selenium
            selenium-java
            3.4.0
        
 
    
 

虽然,学习Maven需要增加你的学习成本,但如果你需要长期使用Java编程语言,或者想用Java来做更多事情的话,越早使用Maven越好!因为它会让的第三方包管理变得非常简单。

3.Hello Selenium

最后,少不了要写一个简单的Selenium Sample来验证Selenium安装是否成功,打开IntelliJ IDEA 创建一个新类Itest.java

package javaBase;
 
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
 
public class Itest {
    public static void main(String[] args) {
 
        WebDriver driver = new ChromeDriver();
        driver.get("http://www.itest.info");
 
        String title = driver.getTitle();
        System.out.printf(title);
 
        driver.close();
    }
}

如果执行报错,请看下一节,Selenium3浏览器驱动。

(四)selenium3 浏览器驱动

1.下载浏览器驱动

当selenium升级到3.0之后,对不同的浏览器驱动进行了规范。如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动。
各浏览器下载地址:
Firefox浏览器驱动:geckodriver
Chrome浏览器驱动:chromedriver taobao备用地址
IE浏览器驱动:IEDriverServer
Edge浏览器驱动:MicrosoftWebDriver
Opera浏览器驱动:operadriver
PhantomJS浏览器驱动:phantomjs
注:部分浏览器驱动地址需要科学上网。

2.设置浏览器驱动

设置浏览器的地址非常简单。 我们可以手动创建一个存放浏览器驱动的目录,如: C:\driver , 将下载的浏览器驱动文件(例如:chromedriver、geckodriver)丢到该目录下。
我的电脑–>属性–>系统设置–>高级–>环境变量–>系统变量–>Path,将“C:\driver”目录添加到Path的值中。

3.验证浏览器驱动

验证不同的浏览器驱动是否正常使用。

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.opera.OperaDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
 
……
 
WebDriver driver = new ChromeDriver();    //Chrome浏览器
 
WebDriver driver = new FirefoxDriver();   //Firefox浏览器
 
WebDriver driver = new EdgeDriver();      //Edge浏览器
 
WebDriver driver = new InternetExplorerDriver();  // Internet Explorer浏览器
 
WebDriver driver = new OperaDriver();     //Opera浏览器
 
WebDriver driver = new PhantomJSDriver();   //PhantomJS
 

(五)selenium元素定位

1.selenium定位方法

Selenium提供了8种定位方式。

  • id
  • name
  • class name
  • tag name
  • link text
  • partial link text
  • xpath
  • css selector
    这8种定位方式在Java selenium中所对应的方法为:
  • findElement(By.id())
  • findElement(By.name())
  • findElement(By.className())
  • findElement(By.tagName())
  • findElement(By.linkText())
  • findElement(By.partialLinkText())
  • findElement(By.xpath())
  • findElement(By.cssSelector())

2.定位方法的用法

假如我们有一个Web页面,通过前端工具(如,Firebug)查看到一个元素的属性是这样的。