掌握了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("点击弹框的确定按钮");
driver.switchTo().alert().dismiss();