设置环境代码中没有运行代码的错误
请指导它
package tc1;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class TC001 {
WebDriver driver;
@BeforeClass
public void launchBrowser(){
FirefoxDriver driver = new FirefoxDriver ();
driver.manage().timeouts().implicitlyWait(50000, TimeUnit.SECONDS);
}
@Test
public void login(){
driver.get("http://www.meritnation.com/testprep");
driver.findElement(By.className("login-link")).click();
//Thread.sleep(50000);
}
@AfterClass
public void browserClose(){
driver.quit();
}
}
通过运行testng输入代码here
显示零运行和零故障[TestNG]正在运行: C:\用户\用户\应用程序数据\本地\ TEMP \ TestNG的-蚀 - 1256807320 \ TestNG的-customsuite.xml
===============================================默认测试
测试运行:0,失败:0,跳过:0
===============================================默认套件
总测试运行:0,失败:0,跳过:0
[TestNG] [FailedReporter传递= 0失败= 0跳过= 0]所花费的时间:3 MS
[TestNG]所用的时间 org.testng.reporters.JUnitReportReporter@1eb44e46:1 ms
[TestNG] org.testng.reporters.jq.Main@ea30797所需时间:56 ms
[TestNG] org.testng.reporters.XMLReporter@1963006a:26所花费的时间 MS
[TestNG]所用的时间 org.testng.reporters.EmailableReporter2@1ee0005:9 ms
[TestNG]所用的时间 org.testng.reporters.SuiteHTMLReporter@6bf2d08e:66 ms
答案 0 :(得分:0)
简短的回答是,我认为您需要将@Before
更改为@BeforeClass
另外我不确定你使用的是什么进口(我只是在eclipse中盲目地做了Ctrl + Shift + o),或者你要去的网站,但我想我会给你一个工人阶级,所以我希望这会有所帮助:
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class TC001 {
// WebDriver driver;
public static WebDriver driver = new FirefoxDriver();
@BeforeClass
public void launchBrowser() {
driver.navigate().to("https://www.google.com");
// FirefoxDriver driver = new FirefoxDriver();
// driver.manage().timeouts().implicitlyWait(50000, TimeUnit.SECONDS);
}
@Test
public void login() {
driver.findElement(By.className("login-link")).click();
//Thread.sleep(50000);
}
@AfterClass
public void browserClose() {
driver.quit();
}
}
更新: 当我运行你的代码时,失败了1次失败。从你看到,0跑,我会问
你可以在eclipse(或任何你的IDE)中尝试“Project clean” 是)。
尝试关闭重启IDE
你正在与司机做一些不同寻常的事情。你宣布两个不同的东西作为你的“司机”
- 尝试像我在答案中那样public static WebDriver driver = new FirefoxDriver();
,
从FirefoxDriver
方法中删除@beforeclass
行
还可以在@beforeclass.
答案 1 :(得分:0)
驱动程序已声明两次。 @BeforeClass方法正在创建FirefoxDriver的本地实例,该实例在@Test方法中无法访问。删除创建FirefoxDriver()实例的@BeforeClass中的“FirefoxDriver”。或者换句话说,在@BeforeClass方法中将FirefoxDriver driver = new FirefoxDriver();
替换为driver = new FirefoxDriver();
。
所以,看起来有点像这样:
public class TC001 {
WebDriver driver;
@BeforeClass
public void launchBrowser(){
driver = new FirefoxDriver ();
driver.manage().timeouts().implicitlyWait(50000, TimeUnit.SECONDS);
}
//剩下的代码