从Maven-Selenium测试中获取到初始化器异常错误。

huangapple 未分类评论47阅读模式
英文:

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(&quot;webdriver.gecko.driver&quot; , System.getProperty(&quot;user.dir&quot;)+&quot;/resources/geckodriver.exe&quot;);
WebDriver driver = new FirefoxDriver();
@SuppressWarnings(&quot;unused&quot;)
Shop_Page_Objects cpo = new Shop_Page_Objects(driver);
@SuppressWarnings(&quot;unused&quot;)
Homepage_Objects hpom = new Homepage_Objects(driver);
@SuppressWarnings(&quot;unused&quot;)
Shop_Page_Methods spm = new Shop_Page_Methods(driver);
@SuppressWarnings(&quot;unused&quot;)
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(&quot;blabla website&quot;);
}
}


//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&lt;WebElement&gt; all_products = Shop_Page_Objects.get_All_Products();
public static int products_count = Shop_Page_Objects.get_All_Products().size();
public static List&lt;WebElement&gt; 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(&quot;&quot;);
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]);

huangapple
  • 本文由 发表于 2020年5月5日 07:20:29
  • 转载请务必保留本文链接:https://java.coder-hub.com/61603247.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定