所以我有这个基本的JUnit程序,在@beforeclass中我打开浏览器并最大化它,然后打开浏览器导航到一个站点并检查元素。 但是,始终只执行第一种情况。所有后续测试用例都失败了。任何人都告诉我我在这里做了什么错误
代码:
package JUnitTesting;
import static org.junit.Assert.*;
import java.util.concurrent.TimeUnit;
import org.junit.AfterClass;
import org.junit.BeforeClass;
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 FlockTeamURLDomain {
static WebDriver driver;
String TeamUrl = "http://farzanshaikh.flock.co/";
String TeamName = "<script>farzan</script>";
String TeamDomain = "farzanshaikh.com";
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.setProperty("webdriver.chrome.driver", "C:\\Automation\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
Thread.sleep(2000);
}
@Test
public void OpenTheTeamURL() throws InterruptedException {
driver.get(TeamUrl);
driver.manage().timeouts().implicitlyWait(3000, TimeUnit.SECONDS);
String Title = driver.getTitle();
System.out.println("The title of the Page is: "+Title);
if(Title.equals("Flock - Team")){
System.out.println("The Title is Correct");
}
else{
System.err.println("The Title is InCorrect");
}
Thread.sleep(2000);
}
@Test
public void CheckTheFooter() {
boolean FlockFooter = driver.findElement(By.cssSelector("//div[@id='team-page']/div[2]/div[5]")).isDisplayed();
System.out.println("Is the Footer Present? "+FlockFooter);
}
@Test
public void CheckAndClickLogo() {
boolean FlockLogo = driver.findElement(By.xpath("//div[@id='team-page']//img")).isDisplayed();
System.out.println("Is Flock Logo Displayed "+FlockLogo);
}
@Test
public void CheckTheHeader() {
boolean FlockHeaderLogo = driver.findElement(By.xpath("//div[@id='step-2-block']/span")).isDisplayed();
System.out.println("Is the Header Element Present? "+FlockHeaderLogo);
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
Thread.sleep(3000);
driver.quit();
}
}
答案 0 :(得分:1)
我认为这是因为您只在第一次测试中导航到所需的网址,而其他任何测试都没有导航到所需的网址
尝试将导航步骤添加到setUpBeforeClass方法
尝试以下:
package JUnitTesting;
import static org.junit.Assert.*;
import java.util.concurrent.TimeUnit;
import org.junit.AfterClass;
import org.junit.BeforeClass;
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 FlockTeamURLDomain {
static WebDriver driver;
String TeamUrl = "http://farzanshaikh.flock.co/";
String TeamName = "<script>farzan</script>";
String TeamDomain = "farzanshaikh.com";
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.setProperty("webdriver.chrome.driver", "C:\\Automation\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
Thread.sleep(2000);
driver.get(TeamUrl);
}
@Test
public void OpenTheTeamURL() throws InterruptedException {
driver.manage().timeouts().implicitlyWait(3000, TimeUnit.SECONDS);
String Title = driver.getTitle();
System.out.println("The title of the Page is: "+Title);
if(Title.equals("Flock - Team")){
System.out.println("The Title is Correct");
}
else{
System.err.println("The Title is InCorrect");
}
Thread.sleep(2000);
}
@Test
public void CheckTheFooter() {
boolean FlockFooter = driver.findElement(By.cssSelector("//div[@id='team-page']/div[2]/div[5]")).isDisplayed();
System.out.println("Is the Footer Present? "+FlockFooter);
}
@Test
public void CheckAndClickLogo() {
boolean FlockLogo = driver.findElement(By.xpath("//div[@id='team-page']//img")).isDisplayed();
System.out.println("Is Flock Logo Displayed "+FlockLogo);
}
@Test
public void CheckTheHeader() {
boolean FlockHeaderLogo = driver.findElement(By.xpath("//div[@id='step-2-block']/span")).isDisplayed();
System.out.println("Is the Header Element Present? "+FlockHeaderLogo);
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
Thread.sleep(3000);
driver.quit();
}
}
答案 1 :(得分:0)
BeforeClass只运行一次。
尝试使用@Before代替。该注释使该方法在每个测试用例之前运行。
答案 2 :(得分:0)
如果我理解正确你想让测试执行上一次测试权所剩下的测试,那么你需要确保执行顺序是正确的,尽管恕我直言,这不是应该如何创建测试
我认为最好按顺序排列
def smoke_test_flock_team_domain():
""" test to check completeness of the page """
open the page
assert title
assert footer
assert header
assert logo
click logo and assert result