Java+Selenium 的高级使用——弹窗,上传下载,浏览器多窗口处理,Frame框架切换 JS注入,截图,等待时间(六)

掌握了selenium初级的用法之后,就可以继续深入的学习

一、弹出对话框的处理

1.1、自定义弹窗

例子:百度首页登录案例

验证数据用户,没有输入密码,页面是否做出验证
验证:使用断言(Assert)

代码

package selenium.framework.demo.test;

import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.testng.Assert;
import org.testng.annotations.Test;
import selenium.framework.demo.util.BrowserBase;
import selenium.framework.demo.util.Logger;

import java.util.List;

public class TestOpenBrowser extends BrowserBase {
    @Test
    public void openBrowser() {
        Logger.log("打开" + browser + "浏览器");
        Logger.log("进入百度页面");

        String baseUrl = "https://www.baidu.com/";
        driver.get(baseUrl);
        delay(2);

        driver.findElement(By.xpath("//div[@id='u1']/a")).click();//点击登录按钮
        delay(2);

        //使用用户名登录
        //判断输入框是否显示可见,
        boolean flag = driver.findElement(By.id("TANGRAM__PSP_11__userName")).isDisplayed();
        if(!flag){//如果不存在,点击用户名登录链接
            driver.findElement(By.xpath("//p[@title='用户名登录']")).click();
            delay(2);
        }
        //输入用户名
        driver.findElement(By.id("TANGRAM__PSP_11__userName")).clear();
        driver.findElement(By.id("TANGRAM__PSP_11__userName")).sendKeys("12323");

        //不输入密码,直接点击登录按钮
        driver.findElement(By.id("TANGRAM__PSP_11__submit")).click();
        delay(2);

        //验证没有输入密码的提示信息
        Assert.assertEquals("请您输入密码",driver.findElement(By.id("TANGRAM__PSP_11__error")).getText());
        delay(2);


        //关闭登录弹出框
        driver.findElement(By.id("TANGRAM__PSP_4__closeBtn")).click();



        Logger.log("关闭" + browser + "浏览器");


    }
}

1.2、Alert弹窗

练习地址

http://sahitest.com/demo/alertTest.htm

代码

@Test
    public void openBrowser() {
        Logger.log("打开" + browser + "浏览器");
        Logger.log("进入百度页面");

        String baseUrl = "http://sahitest.com/demo/alertTest.htm";
        driver.get(baseUrl);
        delay(2);

        driver.findElement(By.name("t1")).clear();
        driver.findElement(By.name("t1")).sendKeys("警告弹出框");
        delay(2);

        driver.findElement(By.name("b1")).click();
        delay(2);

        driver.switchTo().alert().accept();//点击Alert弹框的确定按钮

        Logger.log("关闭" + browser + "浏览器");


    }

1.3、Confirm弹框

练习地址:

http://sahitest.com/demo/confirmTest.htm

代码

@Test
    public void openBrowser() {
        Logger.log("打开" + browser + "浏览器");
        Logger.log("进入百度页面");

        String baseUrl = "http://sahitest.com/demo/confirmTest.htm";
        driver.get(baseUrl);
        delay(2);


        Logger.log("点击按钮");
        driver.findElement(By.name("b1")).click();
        delay(2);
        Logger.log("断言弹框的内容");
        Assert.assertEquals("Some question?",driver.switchTo().alert().getText());

        Logger.log("点击弹框的取消按钮");
        driver.switchTo().alert().dismiss();
        delay(2);



        Logger.log("点击按钮");
        driver.findElement(By.name("b1")).click();
        delay(2);

        Logger.log("点击弹框的确定按钮");
        driver.switchTo().alert().accept();
        delay(2);

        Logger.log("关闭" + browser + "浏览器");


    }

1.4、prompt弹窗

练习地址:

http://sahitest.com/demo/promptTest.htm

代码:

 @Test
    public void openBrowser() {
        Logger.log("打开" + browser + "浏览器");
        Logger.log("进入百度页面");

        String baseUrl = "http://sahitest.com/demo/promptTest.htm";
        driver.get(baseUrl);
        delay(2);


        Logger.log("点击按钮");
        driver.findElement(By.name("b1")).click();
        delay(2);

        Logger.log("输入值到prompt框");
        String text="test";
        driver.switchTo().alert().sendKeys(text);
        delay(2);

        Logger.log("断言弹框的提示消息");
        Assert.assertEquals("Some prompt?",driver.switchTo().alert().getText());

        Logger.log("点击弹框的确定按钮");
        driver.switchTo().alert().accept();//点击confirm弹框的确定按钮
        delay(2);
        

        Logger.log("断言弹框的内容");
        String t1 = driver.findElement(By.name("t1")).getAttribute("value");

        Logger.log("断言输入内容是否一致");
        Assert.assertEquals(t1,text);

        Logger.log("点击按钮");
        driver.findElement(By.name("b1")).click();
        delay(2);

        Logger.log("点击弹框的确
  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值