英文:
Getting Exception In Initializer error from maven- Selenium test
问题
我在我的代码中遇到了"初始化程序异常"错误,不知道哪里出错了,请帮忙!如果你有任何问题,我很乐意回答。下面是我从Maven中获取的错误信息:
[ERROR] 错误信息:
[ERROR] Homepage_Test.startURL:13->BaseClass.globalDriver:26 » ExceptionInInitializer.
// 我的Homepage_Test包含了所有的测试。startURL() 调用 WebDriver 并运行以获取网站:
public class Homepage_Test extends BaseClass {
@BeforeTest
public void startURL() {
globalDriver();
}
@Test
public void search_product() {
Homepage_Methods.search_and_add();
}
@Test
public void verify_product_text() {
Homepage_Methods.verify_search();
}
@Test
public void scroll_down_page() {
Homepage_Methods.scroll_down_verify_text();
}
@AfterClass
public void clear_field() {
Homepage_Methods.clear_inputfield();
}
}
// 我的 BaseClass:
public class BaseClass {
public static void globalDriver() {
System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir") + "/resources/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
@SuppressWarnings("unused")
Shop_Page_Objects cpo = new Shop_Page_Objects(driver);
@SuppressWarnings("unused")
Homepage_Objects hpom = new Homepage_Objects(driver);
@SuppressWarnings("unused")
Shop_Page_Methods spm = new Shop_Page_Methods(driver);
@SuppressWarnings("unused")
Homepage_Methods hpm = new Homepage_Methods(driver);
DesiredCapabilities dc = new DesiredCapabilities();
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true);
dc.setCapability(FirefoxOptions.FIREFOX_OPTIONS, options);
driver.manage().timeouts().implicitlyWait(6000, TimeUnit.SECONDS);
driver.get("blabla website");
}
}
// BaseClass 的第 26 行包含了 Shop_Page_Methods,它非常长,但以下是片段:
public class Shop_Page_Methods extends BaseClass {
private static WebDriver driver;
public Shop_Page_Methods(WebDriver driver) {
Shop_Page_Methods.driver = driver;
}
public static WebElement product_1_to_add_to_cart = Shop_Page_Objects.get_cart_product_1();
public static List<WebElement> all_products = Shop_Page_Objects.get_All_Products();
public static int products_count = Shop_Page_Objects.get_All_Products().size();
public static List<WebElement> all_price = Shop_Page_Objects.get_price();
public static String remove_number = Shop_Page_Objects.get_number_to_remove().getText();
public static String[] remover_1 = remove_number.split("");
public static int remove_number_1 = Integer.parseInt(remover_1[0]);
}
英文:
i am getting an Exception In Initializer error in my code and don't know what i am doing wrong, please help !i am happy to answer if you have any questions. Below is the error i am getting from maven:
[ERROR] Failures:
[ERROR] Homepage_Test.startURL:13->BaseClass.globalDriver:26 » ExceptionInInitializer.
//My Homepage_Test which includes all tests. startURL() invokes webdriver and runs to get website:
public class Homepage_Test extends BaseClass{
@BeforeTest
public void startURL() {
globalDriver();
}
@Test
public void search_product() {
Homepage_Methods.search_and_add();
}
@Test
public void verify_product_text() {
Homepage_Methods.verify_search();
}
@Test
public void scroll_down_page() {
Homepage_Methods.scroll_down_verify_text();
}
@AfterClass
public void clear_field() {
Homepage_Methods.clear_inputfield();
}
}
// My BaseClass:
public class BaseClass {
public static void globalDriver() {
System.setProperty("webdriver.gecko.driver" , System.getProperty("user.dir")+"/resources/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
@SuppressWarnings("unused")
Shop_Page_Objects cpo = new Shop_Page_Objects(driver);
@SuppressWarnings("unused")
Homepage_Objects hpom = new Homepage_Objects(driver);
@SuppressWarnings("unused")
Shop_Page_Methods spm = new Shop_Page_Methods(driver);
@SuppressWarnings("unused")
Homepage_Methods hpm = new Homepage_Methods(driver);
DesiredCapabilities dc = new DesiredCapabilities();
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true);
dc.setCapability(FirefoxOptions.FIREFOX_OPTIONS,options);
driver.manage().timeouts().implicitlyWait(6000, TimeUnit.SECONDS);
driver.get("blabla website");
}
}
//Line 26 of BaseClass contains Shop_Page_Methods which is very long but here is the snippet:
public class Shop_Page_Methods extends BaseClass{
private static WebDriver driver;
public Shop_Page_Methods(WebDriver driver) {
Shop_Page_Methods.driver = driver ;
}
public static WebElement product_1_to_add_to_cart = Shop_Page_Objects.get_cart_product_1();
public static List<WebElement> all_products = Shop_Page_Objects.get_All_Products();
public static int products_count = Shop_Page_Objects.get_All_Products().size();
public static List<WebElement> all_price = Shop_Page_Objects.get_price();
public static String remove_number = Shop_Page_Objects.get_number_to_remove().getText();
public static String[] remover_1 = remove_number.split("");
public static int remove_number_1 = Integer.parseInt(remover_1[0]);
答案1
得分: 0
我发现问题是在实际点击/切换到他们的容器之前,我正在执行以下操作:
public static String remove_number = Shop_Page_Objects.get_number_to_remove().getText();
public static String[] remover_1 = remove_number.split("");
public static int remove_number_1 = Integer.parseInt(remover_1[0]);
英文:
i figured out the issue was that i was doing the following before actually clicking/switching to their container:
public static String remove_number = Shop_Page_Objects.get_number_to_remove().getText();
public static String[] remover_1 = remove_number.split("");
public static int remove_number_1 = Integer.parseInt(remover_1[0]);
专注分享java语言的经验与见解,让所有开发者获益!
评论