双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

软件测试的Selenium基础知识

ggggyyyyy0928 ggggyyyyy0928 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

  一、环境搭建(以java为例)

1.下载chrome浏览器

https://www.google.cn/intl/zh-CN/chrome/

2.查看chrome浏览器版本

设置+关于chrome

3.下载chrome浏览器驱动

下载浏览器对应版本的

ChromeDriver - WebDriver for Chrome - Downloads

120以上版本:Chrome for Testing availability

4.配置环境变量

点击我的电脑/此电脑>>右键点击属性>>点击高级系统设置>>环境变量>>系统变量。

点击系统变量中的path,点击新增,并将驱动的安装目复制填入后,点击确定。

5.Java创建项目,添加pom文件中添加依赖

<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>
import org.openqa.selenium.chrome.ChromeDriver;

public class Main {
    public static void main(String[] args) {
        WebDriver webDriver = new ChromeDriver();
    }
}

二、元素定位

1.CSS选择

 

(1)类选择器

class=""

webDriver.findElement(By.cssSelector(".前端样式类名"));

(2)id选择器

webDriver.findElement(By.cssSelector("#前端样式类名"));

(3)标签选择器

标签名作为定位

2.xpath

webDriver.findElement(By.xpath("//*[@id=\"s-top-left\"]/a[1]")).click();

(1)绝对路径

(2)相对路径

    相对路径+索引  

    相对路径+属性值

    相对路径+通配符

    相对路径+文本匹配

3.css选择器 vs xpath

CSS选择器定位元素效率高

三、操作测试对象

1.click

点击对象

webDriver.findElement(By.cssSelector("#kw")).click();

2.send_key

在对象上模拟按键输入

webDriver.findElement(By.cssSelector("#kw")).sendKeys("你好");

3.clear

清除对象输入的文本内容

4.submit

提交  

点击元素需是在form标签内

5.text

获取元素文本信息

四、等待

1.sleep(等待时间)

强制等待

2.隐式等待

最长等待某个时间点,获取到页面元素,就执行下面代码,如果这个时间还没有找到元素就报错。

WebDriverWait wait= new WebDriverWait(webDriver,3000);

五、打印信息

1.title

获取title

String title= webDriver.getTitle();

2.获取url

String url= webDriver.getCurrentUrl();

六、浏览器操作

1.浏览器最大化

webDriver.manage().window().maximize();

2.设置浏览器大小

 webDriver.manage().window().setSize(new Dimension(长度,宽度));

3.浏览器前进和后退

后退

webDriver.navigate().back();

前进

webDriver.navigate().forward();
webDriver.navigate().to("网址");

等同于 webDriver.get();

4.滚动条

((JavascriptExecutor)webDriver).executeScript("document.documentElement.scrollTop=10000");

5.关闭浏览器

webDriver.quit();
webDriver.close();

区别:

1.quit关闭整个浏览器,close关闭当前页面

2.quit清空缓存,close不会清空缓存

 

七、键盘按键

1.键盘按键使用

webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL);

2.组合键使用

webDriver.findElement(By.cssSelector("#kw")).sendKeys(Keys.CONTROL,"A");

八、鼠标事件

//创建 Actions
Actions action=new Actions(webDriver);
        //找到按钮
WebElement target= webDriver.findElement(By.cssSelector(".a3"));
        //鼠标移动到这个按钮
action.moveToElement(target).contextClick().perform();

九、选择框

List <WebElement> webElements=webDriver.findElements(By.cssSelector("input"));
       for(int i=0;i<webElements.size();i++){
           //getAttribute获取页面上的元素属性
           if(webElements.get(i).getAttribute("type").equals("radio")){
               webElements.get(i).click();
           }
       }

十、上传文件

webDriver.get("");
webDriver.findElement(By.xpath("/html/body/input")).sendKeys("上传文件名");

十一、frame

webDriver.switchTo().frame("id名");

十二、下拉框

 WebElement webElement= webDriver.findElement(By.cssSelector("#ShippingMethod"));
        Select select=new Select(webElement);
        select.selectByIndex(1);
        select.selectByValue("8.34");

十三、alert、confirm、prompt 的处理

text 返回alert/confirm/prompt 中的文字信息
accept 点击确认按钮
dismiss 点击取消按钮,如果有的话
send_keys 输入值,如果alert 没有对话框就不能用了,不然会报错

//输入弹窗
webDriver.switchTo().alert().sendKeys("name");
       //点击确定
 webDriver.switchTo().alert().accept();
       //点击取消
 webDriver.switchTo().alert().dismiss();

十四、窗口切换

 //当前窗口句柄
        String cur_handle=webDriver.getWindowHandle();
        //当前浏览器当前所有句柄
        Set<String> all_handles=webDriver.getWindowHandles();
        String target="";
        for(String temp :all_handles){
            target=temp;
        }
        //切换窗口句柄
        webDriver.switchTo().window(target);

 

十五、截图

下载依赖

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>
 File file=((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
//file保存磁盘
  FileUtils.copyFile(file,new File("保存路径"));

 

...全文

相关推荐

2018学习软件测试课程心得体会【精品文档】.doc

一、软件测试的基础知识软件测试是软件开发的重要组成部分,其目的是为了确保软件的质量和可靠性。软件测试的过程包括测试计划、测试设计、测试执行、测试报告等几个阶段。

超级源码阿

自学软件测试:挑战与机遇

自学软件测试是一个具有挑战和机遇的过程。通过掌握软件测试的基础知识、学习编程基础、掌握测试工具和框架,并通过实践和项目经验来应用所学知识,你可以逐步提高自己的软件测试技能。记住,自学软件测试是一个长期的过程,需要持续的学习和不断的实践,但它也将为你提供丰富的职业发展机会和成就感。对于那些对软件测试感兴趣的人来说,自学软件测试是一个令人兴奋和有挑战性的决定。通过编写和运行类似的测试用例,你可以逐渐提高你的测试技能并熟悉测试工具和框架。在开始自学软件测试之前,了解软件测试的基本概念和术语是至关重要的。

ByteCodN

零基础学习软件测试 软件测试基础知识

在IT行业中,软件测试是确保软件质量的关键环节。对于初学者而言,理解并掌握软件测试基础知识至关重要。"

sangsang4424891

软件测试误区 软件测试用例 软件测试基础知识

**测试工具**:例如Selenium用于自动化测试,Jira用于缺陷管理,TestRail用于测试用例管理和报告。理解并掌握这些基础知识,能够帮助我们构建高效、全面的测试计划,提高软件质量。

sangsang4424891

软件测试教学视频(共30G)

了解这些基础知识是进入软件测试领域的第一步。2.

qq_43261854
评论
收藏 已收藏
分享
返回顶部