我有一个包含10个以上课程的testNG套件。当我将testNG.xml作为套件启动时,浏览器(ff)在进入第二类之前没有关闭,我已经习惯打开浏览器并在每个类中关闭它。我已经测试了它只给了一个类浏览器关闭。请查看以下代码@AfterTest
@BeforeClass(alwaysRun = true)
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "http://www.example.com";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test(priority=0)
public void testActivityMasterDBCheck() throws Exception {
--------------------
--------------------
@AfterTest
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString))
{
fail(verificationErrorString);
}
}
and XML is
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test name="Test">
<classes>
<class name="Admin.ManagePackagesDBCheck"/>
<class name="Reports.ActiveStatusReportDBCheck"/>
----------
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
答案 0 :(得分:1)
使用@AfterClass注释,如下所示:
FirefoxDriverService firefoxDriverService = FirefoxDriverService.CreateDefaultService(@"C:\\Test3", "geckodriver.exe");
firefoxDriverService.FirefoxBinaryPath = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
var driver = new FirefoxDriver(firefoxDriverService);
driver.Navigate().GoToUrl("http://toolsqa.wpengine.com/handling-alerts-using-selenium-webdriver/");
driver.Manage().Window.Maximize();
IWebElement element = driver.FindElement(By.XPath("//button[contains(@onclick,'promptConfirm')]"));
try
{
IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
executor.ExecuteScript("arguments[0].click();", element);
}
catch (InvalidOperationException eee)
{
int dd = 23;
}
driver.SwitchTo().Alert().SendKeys("Accepting the alert");
答案 1 :(得分:0)
执行@AfterClass和(alwaysRun = true)。您的浏览器可能无法关闭的原因很简单,您使用一个驱动程序实例来启动浏览器。所以一旦你的执行结束,下一个类将开始执行,但你还没有结束。所以尝试使用@AfterClass或@AfterMethod。我建议@AfterClass为,你正在启动你的驱动程序@BeforeClass
希望有所帮助。