51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【好消息】企业内训服务上线啦!项目为王,自动化测试提升加速器 !横扫BAT,Python全栈测试开发技能大全
【第123期】:入行2年多测试如何渡过职业迷茫期?参与调查问卷 缔造行业趋势 月薪15K+的测试开发必备技能? 【活动】为视频UP主打CALL,互动领福利!
查看: 564|回复: 1

[转贴] 不用第三方浏览器,Selenium同样能开启Web自动化测试

[复制链接]
  • TA的每日心情
    奋斗
    5 天前
  • 签到天数: 538 天

    连续签到: 1 天

    [LV.9]测试副司令

    发表于 2021-2-2 10:03:41 | 显示全部楼层 |阅读模式
     我们做过Web开发的小伙伴都知道Web应用大多数是基于BS架构的应用程序,也就是通过第三方浏览器访问我们的服务或者产品,通过我们的服务或产品带给用户价值,提升用户的使用体验,构建更加健壮安全稳定的产品或服务,今天的分享我为大家带来如何使用Selenium开启我们的自动化测试之路,为我们的Web应用保驾护航。
      开发环境
      ·Window 10.0.17763
      ·Java 8.0.191
      ·Chrome 73.0.3683
      ·IDEA 2018.3
      Maven Version

      Build Version
    1. <dependencies>
    2.       <dependency>
    3.           <groupId>org.seleniumhq.selenium</groupId>
    4.           <artifactId>selenium-java</artifactId>
    5.           <version>3.141.59</version>
    6.       </dependency>
    7.       <dependency>
    8.           <groupId>junit</groupId>
    9.           <artifactId>junit</artifactId>
    10.           <version>4.12</version>
    11.           <scope>test</scope>
    12.       </dependency>
    13.   </dependencies>
    复制代码
    下载和配置ChromeDriver
      我们可以从淘宝镜像仓库下载您所安装的Chrome浏览器的对应版本,然后把下载的安装包复制到Chrome的安装目录,下图给出复制后的目录结构示例。
      构建步骤
      添加依赖
      编写测试类
      我们使用JUnit来编写一个简单的测试类,来验证Selenium加载ChromeDriver是否成功,直接附上我的示例代码吧。
    1.  package com.zhuye.hbmqs;
    2.   import org.junit.After;
    3.   import org.junit.Before;
    4.   import org.junit.Test;
    5.   import org.openqa.selenium.By;
    6.   import org.openqa.selenium.WebDriver;
    7.   import org.openqa.selenium.chrome.ChromeDriver;
    8.   import java.util.concurrent.TimeUnit;
    9.   public class AppTest {
    10.       private WebDriver driver;
    11.       @Before
    12.       public void setUp() {
    13.           System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
    14.           driver = new ChromeDriver();
    15.           // 最大化浏览器
    16.           driver.manage().window().maximize();
    17.       }
    18.       @Test
    19.       public void testSearchComponents() {
    20.           // 打开百度
    21.           driver.get("https://www.baidu.com/");
    22.           // 定位搜索框并输入搜索项
    23.           driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("Vue Components");
    24.           // 点击搜索结果链接
    25.           driver.findElement(By.xpath("//*[@id=\"su\"]")).click();
    26.           try {
    27.               driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
    28.               Thread.sleep(3000);
    29.           } catch (InterruptedException e) {
    30.               e.printStackTrace();
    31.           }
    32.       }
    33.       @After
    34.       public void tearDown() {
    35.           driver.quit();
    36.       }
    37.   }
    复制代码
    要点解析
      ·通过ChromeDriver来操作页面元素
      ·通过findElement查找元素
      ·通过By.xpath来定位元素
      运行测试
      执行方法testSearchComponents后即可看到Selenium操作Chrome浏览器并输入搜索关键字,暂时3秒后最后关闭浏览器。
      个人总结
      最后总结一下,今天学习到的知识点,也就是如何通过Java API配合ChromeDriver来启动Chrome浏览器并执行一个测试方法,也就是我们可以通过TestSuite完成多个功能的联动测试,也可以从最简单的单元测试入手,逐渐深入进行UI测试、接口测试、性能测试、集成测试等。充分利用Java API提供的相关功能操作你的浏览器,我相信这只是开始,我们会随着学习的深入,接触到更多操作页面元素的方法,也让你的测试水平更上一层楼,提升我们的软件产品质量,为客户创造更大的价值。



    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2021-12-5 21:21 , Processed in 0.054240 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2021 Comsenz Inc.

    快速回复 返回顶部 返回列表