• Selenium WebDriver上创建 WebDriver测试脚本


    本文实现一个WebDriver测试脚本,介绍WebDrive的常用命令、UI元素定位的策略以及在脚本中的使用,还有Get命令。

    你将学到:
     脚本创建
     代码走查
     测试执行
     定位Web元素
     定位符类型及其语法
     总结

    一. 脚本创建

    脚本创建部分仍然使用之前创建的“Learning Selenium”项目和“gmail.com”作为被测试应用程序(AUT)。

    场景:
    启动浏览器,打开“Gmail.com”。
    验证页面标题并打印验证结果。
    输入用户名和密码。
    单击登录按钮。
    关闭web浏览器。

    步骤1:在“Learning Selenium”项目下创建一个名为“Gmail_Login”的新java类名称

    步骤2:在“Gmail_Login”中复制并粘贴以下代码

    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.firefox.FirefoxDriver;

    public class Gmail_Login {
    /**

    • @param args
      */
      public static void main(String[] args) {

    // objects and variables instantiation
    WebDriver driver = new FirefoxDriver();
    String appUrl = "https://accounts.google.com";

    // launch the firefox browser and open the application url
    driver.get(appUrl);

    // maximize the browser window
    driver.manage().window().maximize();

    // declare and initialize the variable to store the expected title of the webpage.
    String expectedTitle = " Sign in - Google Accounts ";

    // fetch the title of the web page and save it into a string variable
    String actualTitle = driver.getTitle();

    // compare the expected title of the page with the actual title of the page and print the result
    if (expectedTitle.equals(actualTitle))
    {
    System.out.println("Verification Successful - The correct title is displayed on the web page.");
    }
    else
    {
    System.out.println("Verification Failed - An incorrect title is displayed on the web page.");
    }

    // enter a valid username in the email textbox
    WebElement username = driver.findElement(By.id("Email"));
    username.clear();
    username.sendKeys("TestSelenium");

    // enter a valid password in the password textbox
    WebElement password = driver.findElement(By.id("Passwd"));
    password.clear();
    password.sendKeys("password123");

    // click on the Sign in button
    WebElement SignInButton = driver.findElement(By.id("signIn"));
    SignInButton.click();

    // close the web browser
    driver.close();
    System.out.println("Test script executed successfully.");

    // terminate the program
    System.exit(0);
    }
    }

    上面的代码的意思与前面的文本场景相同

    二. 代码走查

    导入语句:

    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.By;

    在编码前,我们需要导入上面的包:

    import org.openqa.selenium.WebDriver:引用WebDriver的接口,该接口用于实例化一个新的Web 浏览器
    import org.openqa.selenium.firefox.FirefoxDriver:引用FirefoxDriver类,该类在WebDriver的接口上实例化Firefox特定驱动程序
    import org.openqa.selenium.WebElement:引用WebElement类,该类用于实例化一个新的web元素。
    import org.openqa.selenium.By:引用By 类,用于调用定位符
    有时我们需要引入其他几个包来实现更复杂、更独特的功能,如excel操作、数据库连接、日志记录、断言等
    

    对象实例化
    WebDriver driver = new FirefoxDriver();
    创建一个引用变量WebDriver,并使用FirefoxDriver类实例化它。这个过程将启动一个默认的Firefox配置文件,而不加载任何扩展和插件。
    启动Web浏览器

    driver.get(appUrl);
    在WebDriver实例上调用get()方法来启动新的web浏览器实例。Get()方法的字符串将web浏览器重定向应用程序的URL

    浏览器窗口最大化
    driver.manage().window().maximize();

    maximize()方法是在浏览器窗口被重定向到应用程序URL后,将其最大化。

    获取页面标题
    driver.getTitle ();
    获取当前网页的标题,可以将获取的标题加载到字符串变量中。

    if (expectedTitle.equals(actualTitle))
    {
    System.out.println("Verification Successful - The correct title is displayed on the web page.");
    }
    else
    {
    System.out.println("Verification Failed - An incorrect title is displayed on the web page.");
    }

    上面代码的意思是用java结构将期望的结果和实际的结果进行比较,根据比较的结果进行输出。

    WebElement实例化

    WebElement username = driver.findElement(By.id(“Email”));

    在上面的语句中,我们通过调用“driver.findElement(By.id(“Email”))”,实例化了WebElement的引用。同时,用户名可以通过引用用户界面上的电子邮件文本框,实现对用户界面的一些操作

    清除命令
    username. Clear();

    clear()方法/命令用于清除文本框中出现的值,包括清除默认值
    sendKeys命令

    username.sendKeys(“TestSelenium “);

    sendKeys()方法/命令用于在文本框中输入/键入指定的值,上面的代码意思是在Gmail应用程序的电子邮件文本框中输入字符串“TestSelenium”, sendKeys是webdriver脚本中最常用的命令之一。

    Click命令
    SignInButton.click();

    与sendKeys()类似,click()是另一个与web元素交互的命令。
    单击()命令/方法用于单击web页面上的web元素。
    上面的代码意思是在Gmail应用程序上单击“Sign in”按钮

    注:
    与sendKeys()方法不同,click()方法不能参数化。
    为了支持单击web元素可能会加载一个新页面这种情况,click()方法是等待页面加载的编码方式。

    关闭Web浏览器
    driver.close();
    close()用于关闭当前浏览器窗口。

    终止Java程序
    System.exit(0);
    Exit()方法强制终止Java程序。记住在终止Java程序之前关闭所有浏览器实例。

    三. 测试执行
    可以有下面3种方式来执行脚本:

    1. 在eclipse的菜单栏点击执行按钮运行测试脚本,参见下图

    2. 在编辑器任意地方邮件点击,选择“Run As”选项,接下来选择“Java Application”

    3. 或者采用快捷键方式,按下Ctril+F11组合键

    执行成功后,在面板上显示“Test script executed successfully”
    四. 定位Web元素

    WebDriver中的Web元素定位和检查可以像在Selenium IDE的前面文章中介绍的那样,使用Selenium IDE和Firebug可以检查GUI上的web元素。强烈建议使用Selenium IDE来查找web元素。找到web元素后,复制并粘贴目标值到WebDriver代码中。

    在WebDriver中,web元素是在动态查找器(findElement)的帮助下定位的(findElement(By.locatorType(“locator value”))).

    比如:
    driver.findElement(By.id(“Email”));

    定位符类型及其语法

    五. 总结

    在本文中,我们使用WebDriver和Java开发了一个自动化脚本。我们还讨论了构成WebDriver脚本的各种组件。

    重点内容
     在编写脚本前,我们需要导入一些能够创建WebDriver脚本的包

    importopenqa.selenium.By;
    importopenqa.selenium.WebDriver;
    importopenqa.selenium.WebElement;
    importopenqa.selenium.firefox.FirefoxDriver;
     get()方法打开新的浏览器,get()方法的字符串将启动web浏览器并重定向到应用程序的URL
     maximize()方法使窗口最大化
     clear() 方法可清楚文本框里的任何内容
     sendKeys() 方法在文本框中输入指定的值
     Click()方法用于在web页面上点击web元素
     在WebDriver中,可以使用动态查找器定位web元素
     可用的定位器类型:
    id
    className
    name
    xpath
    cssSelector
    linkText
    partialLinkText
    tagName

  • 相关阅读:
    Oracle EXPDP/IMPDP示例
    Oracle修改日志归档模式、归档路径以及空间大小的相关测试
    CentOS6.8 安装 Oracle11.2.0.4
    安装ORACLE时 各Linux版本下载地址
    Oracle数据库导入报ORA-39083处理
    oracle跨平台数据迁移 expdp/impdp 字符集问题 导致ORA-02374 ORA-12899 ORA-02372
    ASM路径问题导致数据库不能正常启动 -- 报:ORA-03113: end-of-file on communication channel
    oralce11g RAC 启动后 CRS-0184: Cannot communicate with the CRS daemon.
    Oracle 11g安装时针对不同操作系统所需的依赖包查询地址
    关于oracle RAC心跳线采用直连 还是交换机连接的建议
  • 原文地址:https://www.cnblogs.com/luoditao/p/14315466.html
Copyright © 2020-2023  润新知