51Testing软件测试论坛
标题:
怎么让每执行一个@Test不要重新开启一个浏览器
[打印本页]
作者:
小丫头amy
时间:
2016-4-11 11:52
标题:
怎么让每执行一个@Test不要重新开启一个浏览器
代码如下:每执行一个@Test的时候,都要重启一个浏览器,怎么让每一个test都是 在第一次开启的浏览器上操作呢?
package com.parking;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class TestLogin {
private static String url="http://app.xmparking.net:58080/regulation/login/login";
WebDriver dr=null;
WebElement element=null;
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver", "E:/chromedriver_win32/chromedriver.exe");
dr=new ChromeDriver();
dr.get(url);
}
@After
public void tearDown() throws Exception {
dr.close();
}
@Test
public void testUsername() {
element=dr.findElement(By.id("loginName"));
element.clear();
String name=element.getAttribute("placeholder");
assertEquals("手机号",name);
}
@Test
public void testPassWord(){
element=dr.findElement(By.id("password"));
element.clear();
String password=element.getAttribute("placeholder");
assertEquals("6位以上任意字符,区分大小写!",password);
}
@Test
public void testSaveid(){
boolean flag;
element=dr.findElement(By.xpath(".//*[@id='loginForm']/div[3]/div[2]/input[@id='saveId']"));
//element.clear();
flag=element.isSelected();
if(flag=false){element.click();}
element.click();
assertTrue(element.isEnabled());
assertTrue(element.isDisplayed());
assertTrue(element.isSelected());
}
@Test
public void testFogetPassWord(){
element=dr.findElement(By.xpath(".//*[@id='loginForm']/div[3]/div[2]/a"));
element.click();
assertEquals("http://app.xmparking.net:58080/regulation/forgot/forgotPassword",dr.getCurrentUrl());
dr.navigate().back();
}
@Test
public void testRegsiter(){
element=dr.findElement(By.xpath(".//*[@id='loginForm']/div[3]/div[4]/a"));
element.click();
assertEquals("http://app.xmparking.net:58080/regulation/register/register",dr.getCurrentUrl());
dr.navigate().back();
}
}
作者:
joykao
时间:
2016-4-11 13:35
你把junit换成testng,testing支持更多的annotation,@BeforeClass @AfterClass @BeforeMethod @AfterMethod建议把那些个annotation都试一边,这样就知道各个的应用范围了和基本原理也清楚了
作者:
kexinqw11
时间:
2016-4-21 12:52
写一个类初始化driver的,然后所有的类都继承这个类就好了
作者:
wwwqjpcom
时间:
2016-4-21 14:51
楼主的意思是 一个用例执行完了,想在另外的一个用例里继续在已经打开的浏览器实例上操作,而不是必须退出浏览器,重新新建一个Driver 吧?
感觉楼上的好像都答歪了。。。。
作者:
wwwqjpcom
时间:
2016-4-24 12:06
如果你是在问如何使用已打开的浏览器的画,请参考:
http://blog.csdn.net/wwwqjpcom/article/details/51232302
,希望可以帮到你。
作者:
kexinqw11
时间:
2016-4-26 11:12
wwwqjpcom 发表于 2016-4-21 14:51
楼主的意思是 一个用例执行完了,想在另外的一个用例里继续在已经打开的浏览器实例上操作,而不是必须退出 ...
楼主的意思我明白。其实解决方法就是让所有的用例共用一个WebDriver,而不是每个用例都new一个。以这个思想为基础,写一个初始化 WebDriver的类,当然,在写这个初始化类的时候,要考虑是否初始化过,做个判断就可以了。然后所有用例继承这个类,那么这样就达到了每个用例共用一个WebDriver的要求。如果有兴趣,我们可以共同探讨~
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2