Selenium2.0之WebDriver学习总结(3)
来源:互联网 发布:smtp端口号是多少 编辑:程序博客网 时间:2024/04/29 02:42
接下来将通过几个具体的例子来使用操作上述功能,以下代码都是通过junit框架编写。
例子1:该例子主要是登录网易相册,创建一个私人相册,并进入相册进行评论,然后删除这个相册。在这个例子中,可以找到各种方式定位元素方法的具体实例:
package demo;import java.util.concurrent.TimeUnit;import org.junit.*;import org.openqa.selenium.*;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Actions;import org.openqa.selenium.support.ui.Select;public class DemoElement1 { private WebDriver driver; private String baseUrl; @Before public void setUp() throws Exception { driver = new FirefoxDriver(); baseUrl = "http://photo.163.com/"; driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void test() throws Exception { //打开一个网址 driver.get(baseUrl); //输入用户名 //by css driver.findElement(By.cssSelector("input[name=\"username\"]")).clear(); driver.findElement(By.cssSelector("input[name=\"username\"]")).sendKeys("demophoto"); driver.findElement(By.cssSelector("div.js-cur")).click(); //输入密码 //by name driver.findElement(By.name("password")).clear(); driver.findElement(By.name("password")).sendKeys("qa1234"); //点击登录 //by id driver.findElement(By.id("photo_index_login")).click(); //获取页面title //by js JavascriptExecutor js = (JavascriptExecutor) driver; String title = (String)js.executeScript("return document.title"); System.out.println(title); //点击 创建相册 //by linkText driver.findElement(By.linkText("创建相册")).click(); //输入 相册名称 //by name driver.findElement(By.name("name")).clear(); driver.findElement(By.name("name")).sendKeys("new album"); //选择私人相册 //by id driver.findElements(By.name("auth")).get(3).click(); //选择aaa分类 //by css Select select = new Select(driver.findElement(By.cssSelector("select.fc5.bdwa"))); //选择的三种不同实现 //select.selectByValue("aaa"); //select.selectByIndex(1); select.selectByVisibleText("aaa"); //点击 创建 两种方式 //by css driver.findElement(By.cssSelector("button.ui-btn.ui-btn-sub0")).click(); //driver.findElement(By.cssSelector("button.ui-btn.ui-btn-sub0")).submit(); Thread.sleep(5000); //输入评论 //因为评论框放在一个iframe中,所以要切换到iframe中,结束后将焦点切换回去 //by tagName driver.switchTo().frame(driver.findElement(By.tagName("iframe"))); driver.switchTo().activeElement().sendKeys("评论内容!"); driver.switchTo().defaultContent(); //点击 发表 //by className driver.findElement(By.className("ui-btn-main0")).click(); //点击 返回 //by xpath driver.findElement(By.xpath("//a[@class='back' and (text()='<< 返回')]")).click(); //鼠标hover到相册上(目前firefoxDriver的鼠标事件还是有缺陷的,运行这代码的时候请确保光标在浏览器内) //by partialLinkText new Actions(driver).moveToElement(driver.findElement(By.partialLinkText("new album"))).build().perform(); //点击 删除 //by linkText driver.findElement(By.linkText("删除")).click(); //点击确认 driver.findElement(By.cssSelector("button.ui-btn.ui-btn-sub0")).click(); //退出登录 //by id driver.findElement(By.id("headerLogout")).click(); //浏览器后退 driver.navigate().back(); } @After public void tearDown() throws Exception { driver.quit(); }}
package demo;import java.io.File;import java.util.concurrent.TimeUnit;import org.junit.*;import org.openqa.selenium.*;import org.openqa.selenium.firefox.FirefoxDriver;public class DemoElement2 { private WebDriver driver; private String baseUrl; @Before public void setUp() throws Exception { driver = new FirefoxDriver(); baseUrl = "http://photo.163.com/"; driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void test1111() throws Exception { driver.get(baseUrl + "/q/690000"); driver.findElement(By.linkText("[马上登录]")).click(); driver.findElement(By.name("username")).clear(); driver.findElement(By.name("username")).sendKeys("demophoto"); driver.findElement(By.cssSelector("div.js-cur")).click(); driver.findElement(By.cssSelector("td > input[name=\"password\"]")).clear(); driver.findElement(By.cssSelector("td > input[name=\"password\"]")).sendKeys("qa1234"); driver.findElement(By.name("login")).click(); driver.findElement(By.id("J-set-account")).click(); File file = new File(".\\res\\1.jpg");
//获取需要上传照片的绝对地址 String filepath = file.getCanonicalPath(); //上传控件操作 driver.findElement(By.id("J-account-file")).sendKeys(filepath); Thread.sleep(10000); driver.findElement(By.cssSelector("span.inside")).click(); driver.findElement(By.cssSelector("button.ui-btn.ui-btn-sub0")).click(); driver.findElement(By.linkText("返回>>")).click(); driver.findElement(By.linkText("退出")).click(); } @After public void tearDown() throws Exception { driver.quit(); }}
package demo;import java.util.concurrent.TimeUnit;import org.junit.*;import static org.junit.Assert.*;import org.openqa.selenium.*;import org.openqa.selenium.firefox.FirefoxDriver;import org.openqa.selenium.interactions.Actions;public class DemoElement3 { private WebDriver driver; private String baseUrl; private StringBuffer verificationErrors = new StringBuffer(); @Before public void setUp() throws Exception { driver = new FirefoxDriver(); baseUrl = "http://photo.163.com/"; driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void test() throws Exception { driver.get(baseUrl + "/"); driver.findElement(By.name("username")).clear(); driver.findElement(By.name("username")).sendKeys("demophoto"); driver.findElement(By.cssSelector("div.js-cur")).click(); driver.findElement(By.name("password")).clear(); driver.findElement(By.name("password")).sendKeys("qa1234"); driver.findElement(By.id("photo_index_login")).click(); driver.findElement(By.partialLinkText("排序相册")).click(); driver.findElement(By.cssSelector("#J-photoListSort > span.title")).click(); driver.findElement(By.linkText("自定义排序")).click(); //拖动图片 (new Actions(driver)).dragAndDrop(driver.findElement(By.id("7515773989")), driver.findElement(By.id("7515803792"))).perform(); driver.findElement(By.linkText("确定排序")).click(); Thread.sleep(10000); driver.findElement(By.cssSelector("#J-photoListSort > span.title")).click(); driver.findElement(By.linkText("新相片在前")).click(); } @After public void tearDown() throws Exception { driver.quit(); String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); } } private boolean isElementPresent(By by) { try { driver.findElement(by); return true; } catch (NoSuchElementException e) { return false; } }}
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结2
- Selenium2.0之WebDriver学习总结
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(2)
- 嵌入式设计降低硬件功耗四法介绍
- Selenium2.0之grid学习总结
- 多线程编程示例
- 联通部分地区Nano卡到货可用21M网络
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(3)
- VC2008编译陆其明先生的开源项目MpegNetwork---Link错误解决
- 简单工厂模式和工厂方法模式Demo
- POJ 3020 二分匹配
- 手机屏幕锁忘记了怎么办
- 12306NG 开源项目群定义与发展建议
- 面向对象
- 黑马程序员--多线程
- IntelliJ 设置JDK