【自动化测试】 环境部署和元素定位

本文介绍了自动化测试的概念,重点讲解了Selenium工具(包括SeleniumIDE、Webdriver和SeleniumGrid)及其工作原理,详细阐述了如何通过id、name、tagname、xpath和cssselector进行元素定位,以及如何在实际环境中部署和使用Chrome浏览器进行自动化测试。
摘要由CSDN通过智能技术生成

写在前面

        勤奋跟吃苦不一样,假如你对工作,生活不满意。就要跳出圈子,接触其它人或事物,提升自己。从而换个工作,或者换了心态看待问题。而不是,吃苦的加班逼着自己去内卷,卷来卷去觉得吃苦受累,最终什么也没获得。躺平只是心态,不是听天由命。

                                                                                                                          ——不吃葱的阿冬


🍟问题一 什么是自动化测试?

🍔问题二 什么是Selenium以及Selenium工作原理?

🥪问题三 Selenium环境如何搭建?

🍞问题四 Selenium API


目录

写在前面

一、概念    

1.Selenium IDE

2.Webdriver

3.Selenium Grid

二、环境部署

三、八大元素定位

1.为什么要使用元素定位

2.如何定位

3.定位元素依赖于什么

3.1 id定位

3.2通过name定位 

 3.3 通过tag name和class name定位

3.4通过xpath和css selector


一、概念    

        自动化测试就是将人工要做的测试工作交给代码去执行,主要是为了提高测试效率,提高测试产品的质量。

Selenium是一个做web/UI自动化测试的工具

现在主流的测试工具:
   ①:QTP:收费 支持(支持web、桌面软件自动化)
   ②: selenium:免费,开源 只支持web项目
   ③:Robot frameword: 基于Python扩展关键字驱动自动化工具

自动化测试主要包括:单元测试,UI测试和接口测试 

Selenium的特点:

1)免费,可以查看源码

2)Selenium支持各大浏览器

3)跨平台(在Linux,windows,Mac上都可以)

4)有丰富的API

        最早期的seleniumRC已经被现在的webDriver所替代,可以理解为selenium1.0+webdriver构成了现在的Selenium2.0。

        我们日常所说的Selenium就是Selenium2.0,它是由Selenium IDE,Webdriver,Selenium Grid组成。

1.Selenium IDE

        Selenium IDE是一个用于selenium测试的完整集成开发环境,可以直接录制在浏览器的用户操作,并且能回放,编辑和调试测试脚本。调试过程中可以逐步进行或者调整执行的速度,并且可以在底部浏览日志出错误信息,录制的脚本可以用多种语言导出。

2.Webdriver

        Selenium RC 在浏览器中运行JavaScript应用会存在环境沙箱问题,但是Webdriver可以跳出JavaScript的沙箱,针对不同浏览器创建更健壮的,分布式的,跨平台的自动化测试脚本。基于特定语言(Java C# Python 等)绑定来驱动浏览器对web元素进行操作和验证。 

Webdriver的工作原理:

①:启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动浏览则作为webdriver的remote server。

②:客户端(测试脚本),借助ComandExecutor发送HTTP请求给sever端

③:Sever端需要依赖原生的浏览器组件,转化web service的命令为浏览器native的调用来完成操作。

3.Selenium Grid

其实就是一个服务器,提供对浏览器实例访问的服务器列表,管理各个节点的注册和状态信息。可以实现在同一时刻不同服务器上执行不同的测试脚本。

二、环境部署

这里使用的是chrome+Java

chrome 下载地址:Google Chrome - 快速安全的网络浏览器,专为您而打造

chromedriver 下载地址:ChromeDriver - WebDriver for Chrome - Downloads

!!! 两者的版本需要一致 

配置系统环境变量:找到chrome的位置,将刚下好的chromedriver驱动放到这个位置

然后复制地址,后面用

找到高级系统变量-->Path

添加pom.xml依赖

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

能打开浏览器就说明运行成功:

package org.example;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Main {
    public static void main(String[] args) {
    test1();
    }
    public static void test1() {
        //创建驱动
        WebDriver webDriver = new ChromeDriver();
        //打开百度
        webDriver.get("https://www.baidu.com");
    }
}

三、八大元素定位

1.为什么要使用元素定位

因为真正项目中计算机无法找到具体位置,所以需要元素定位来指定计算机所定位的元素来进行操作。

2.如何定位

启动驱动之后 在网页中按下F12或者右击鼠标“检查”,然后点击“元素”

3.定位元素依赖于什么

定位元素依赖于各个层级、标签名、属性、路径

主要有这么几个

①id  ②name  ③class name  ④link text  ⑤partial link text  ⑥tag name  ⑦xpath  ⑧css selector

最重要的也是最常用的定位也就三个:css、xpath、标签定位也就是⑥⑦⑧

3.1 id定位

 id是页面元素的属性,但是不是所以的元素都有id。如果一个元素有id属性,那么一般在整个页面是唯一的。外面一般可以用id来定位到这个唯一的属性:

        //通过id定位
        private static void test01() {
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com");
        webDriver.findElement(By.id("kw")).sendKeys("java");
    }

3.2通过name定位 

如果这个项目中有name且name是项目中唯一的,那么就可以使用name定位。

//2.name定位
    private static void test02() {
        WebDriver webDriver = new ChromeDriver();
        webDriver.get("https://www.baidu.com");
        webDriver.findElement(By.name("wd")).sendKeys("java");
    }

 3.3 通过tag name和class name定位

3.4通过xpath和css selector

不经常用的就不列出来了

如果需要在浏览器中查询,按 f12 再按ctrl +f 然后直接输入上述定位元素中的内容就行 

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小劉要努力~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值