• 初识Selenium(二)


     ---------------------------------------------------------------------------------------------------------

      一、Selenium-RC selenium-remote control 缩写,是使用具体的语言来编写测试类。

      二、准备工作: 1,下载 selenium 了,到http://www.openqa.org/selenium/下载就可以了,记得选择selenium-rc 的版本

      2, 学习一下xpath 的知识。有个教程:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html

      3, 安装 jdk1.5

      三、selenium-rc 一些使用方法

      1,解压selenium-rc压缩包

      2,启动服务器

      Selenium Server是用JAVA实现的,相应的库文件在HOME/server/selenium-server.jar。运行如下代码从命令行启动:

      java 代码 : java -jar selunium-server.jar

      四、编写测试用例

      需要的JAR: selenium-java-client-driver.jar;junit

      编写一个JUNIT单元测试,要构建一个Selenium,包括如下步骤:

      * 构建一个Selenium实例

      * 启动Selenium实例

      * 执行Selenium命令,并验证结果。

      * 关闭Selenium实例

      如下是一个示例,用来测试http://www.google.com/,查找selenium,期望结果中包含"OpenQA: Selenium"

     

     

      1. package com.thoughtworks.selenium;     
       2.  
       3. import junit.framework.*;  
       4.  
       5. import org.openqa.selenium.server.*;  
       6.  
       7. public class GoogleTest extends TestCase  
       8. {  
       9.    private Selenium selenium;  
      10.  
      11.    public void setUp() throws Exception {  
      12.         String url = "http://www.google.com";  
      13.        selenium = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), "*firefox", url);  
      14.        selenium.start();  
      15.     }  
      16.      
      17.    protected void tearDown() throws Exception {  
      18.        selenium.stop();  
      19.    }  
      20.      
      21.    public void testGoogleTestSearch() throws Throwable {  
      22.         selenium.open("/intl/zh-CN/");  
      23.         selenium.type("q", "selenium");  
      24.         selenium.click("btnG");  
      25.         selenium.waitForPageToLoad("30000");  
      26.         assertEquals("selenium - Google 搜索", selenium.getTitle());
      27.       
      28.     }  
      29.       
      30. }  

     五、多环境测试

     

    package test;

    import org.junit.Test;

    import junit.framework.TestCase;

    import com.thoughtworks.selenium.DefaultSelenium;
    import com.thoughtworks.selenium.Selenium;
    /**
    * 多浏览器测试
    * @author hgz
    *
    */
    public class NewTest extends TestCase {
    @Test
    public void testNew() throws Exception {
    Selenium selenium = new DefaultSelenium("localhost", 4444, "*chrome",
    "http://www.google.cn");
    script(selenium);
    }

    @Test
    public void testNew2() throws Exception {
    Selenium selenium = new DefaultSelenium("localhost", 4444, "*iehta",
    "http://www.google.cn");
    script(selenium);
    }

    private void script(Selenium selenium) throws Exception {
    try {
    selenium.start();
    selenium.open("http://www.google.cn/");//调用 selenium.open 方法,浏览器会打开相应的页面
    selenium.type("q", "selenium");//使用 type 方法来给输入框输入文字
    selenium.click("btnG");
    selenium.waitForPageToLoad("30000");//等待页面载入
    assertEquals("selenium - Google 搜索", selenium.getTitle());//看看新的页面标题是不是我们想要的。
    } catch (Exception e) {
    throw e;
    } finally {
    selenium.stop();
    }
    }
    }

    六、如何选取元素

      selenium提供如下强大的定位元素的方法。

     

    id=id
    name=name
    dom=javascriptExpression
    xpath=xpathExpression
    link=textPattern
    css=cssSelectorSyntax

      1 通过ID,name选择元素    selenium.type("id=q","百度"); selenium.type("name=search","百度")

      2 link= 根据链接文字来操作:selenium.click("link=个人资料");

      3 根据XPath来选择元素  : XPath Checker

     

    * xpath=//img[@alt='The image alt text']
    * xpath=//table[@id='table1']//tr[4]/td[2]
    * xpath=//a[contains(@href,'#id1')]
    * xpath=//a[contains(@href,'#id1')]/@class
    * xpath=(//table[@class='stylee'])//th[text()='theHeaderText']/../td
    * xpath=//input[@name='name2' and @value='yes']
    * xpath=//*[text()="right"]
    如: selenium.type("xpath=//input[@name='user.email']", "xxx@123.com"); // 向input中type为text的栏位键入信息
    selenium.check("xpath=//input[(@name='user.sex')and(@value='男')]");// 向input中type为radiod的 选取

      4 dom选择

     

    * dom=document.forms['myForm'].myDropdown
    * dom=document.images[56]
    * dom=function foo() { return document.links[1]; }; foo();

      5 css选择器

      这个不常用,它可以支持css2, css3选择器

     

    * css=a[href="#id3"]
    * css=span#firstChild + span

      七、使用selenium 这个对象来进行测试

      获取标 : assertEquals("Insert title here", selenium.getTitle());

      判断页面是否存在一个user.email元素  :assertTrue(selenium.isElementPresent("xpath=//input[@name='user.email']"));

      得到文本框里的文字:   assertEquals(selenium.getValue("xpath=//input[@name='user.username']"),"xxxaas");

      测试check box  :    assertTrue(selenium.isChecked("xpath=//input[(@name='user.sex')and(@value='')]"));

      点击提交按钮   : selenium.click("xpath=//input[@type='button']");

      等待页面载入   : selenium.waitForPageToLoad("2000");

      验证指定文本出现在提交给用户的页面上: assertTrue(selenium.isTextPresent("验证码输入有误,请核实后再输入"));

      判断下拉框里选择了哪个选项 :assertEquals(selenium.getSelectedIndex("xpath=//SELECT[@name='HATIMING']"), "1");

      如何测试一些错误消息的显示? assertTrue(selenium.getBodyText().indexOf("错误消息")>=0);

      getBodyText 返回的时浏览器页面上的文字,不回包含html 代码的,如果要显示html 代码,用下面这个:selenium.getHtmlSource();

      八、Firefox 的插件

      1 XPath Checker :可以用这个工具测试简化我们的xpath表达式

      2 Firebug

      3 Selenium IDE

      4 Execute JS

  • 相关阅读:
    吊打996,来了?!
    微软开源浏览器自动化工具Playwright for Python(附源码)
    从0到1开始建设安全测试体系
    网友爆料vivo将取消大小周,不降薪,官方证实消息属实
    认识了一个在华为任职的50岁程序员!
    漫画:什么是自动驾驶?
    中国十大杰出人物
    最难调试修复的 bug 是怎样的?
    “十年不升职多得是,四年算什么”
    appium+pytest实现APP并发测试
  • 原文地址:https://www.cnblogs.com/zhuzhubaoya/p/5977033.html
Copyright © 2020-2023  润新知