У меня есть базовый класс с методом для открытия моего URL, который в моих тестовых случаях называется @BeforeMethod. Метод принимает строковый аргумент для типа браузера, который определяет, какой браузер вызывается. Я пытаюсь установить параметр в моем файле запуска xml, который можно ввести в мой @BeforeMethod в качестве аргумента для метода openURL.
Вот мой XML-файл:
<?xml version="1.0" encoding="UTF-8"?>
<suite name="FullRegressionSuite" parallel="false">
<listeners>
<listener class-name="reporting.CustomReporter"></listener>
</listeners>
<test name="Test">
<parameter name ="browserType" value="Chrome"/>
<classes>
<class name="reporting.reporterTest"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
Вот мои тесты:
@Listeners(CustomListener.class)
public class reporterTest extends Base {
@Test
public void testOne() {
Assert.assertTrue(true);
}
@Test
public void testTwo() {
Assert.assertTrue(false);
}
@Parameters({ "browserType" })
@BeforeMethod
public void setUp(String browserType) throws InterruptedException {
System.out.println(browserType);
openURL(browserType);
}
@AfterMethod
public void tearDown() {
driver.quit();
}
}
Вот мой базовый класс:
public class Base {
public static WebDriver driver = null;
//CALL WEB BROWSER AND OPEN WEBSITE
public static void openURL(String browser) throws InterruptedException {
//launches browser based on argument given
try{
if (browser == "Chrome") {
System.setProperty("webdriver.chrome.driver", "/Users/rossdonohoe/Desktop/SeleniumJava/Drivers/chromedriver");
driver = new ChromeDriver();
}
else if (browser == "Firefox") {
System.setProperty("webdriver.gecko.driver", "/Users/rossdonohoe/Desktop/SeleniumJava/Drivers/geckodriver");
driver = new FirefoxDriver();
}
else {
System.out.println("Error: browser request not recognized");
}
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
driver.get("https://www.google.com");
}
catch(Exception E) {
E.printStackTrace();
}
}
}
Мой @BeforeMethod определенно получает параметр, так как я печатаю его значение для проверки и получаю «Chrome» в консоли. Однако openURL завершается с ошибкой в строке «удалить все файлы cookie» с исключением нулевого указателя (и моя строка «Ошибка: запрос браузера не распознан» печатается в консоли), указывая на то, что строка не достигает openURL в качестве аргумента. Может кто-нибудь видит, что я делаю не так?