软件测试的Selenium基础知识

ggggyyyyy0928 2024-05-13 11:43:19

  一、环境搭建(以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("保存路径"));

 

...全文
90 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

490

社区成员

发帖
与我相关
我的任务
社区描述
闽江学院IT领域专业的学生社区
社区管理员
  • c_university_1157
  • 枫_0329
  • 傅宣
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧