并行执行功能文件会导致控制台上打印机出现空指针异常

1cklez4t  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(301)

我曾尝试过为功能文件的并行执行编写代码,但控制台上出现如下错误:

  1. [TestNG-PoolService-0] ERROR com.nicholas.StepsDef.ExportProduct - java.lang.NullPointerException
  2. Element info: {Using=xpath, value=//a[@class='log-wrapper']/child::img}
  3. at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  4. at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  5. at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  6. at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
  7. at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
  8. at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
  9. at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
  10. at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
  11. at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
  12. at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
  13. at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:323)
  14. at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:428)
  15. at org.openqa.selenium.By$ByXPath.findElement(By.java:353)
  16. at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315)
  17. at org.openqa.selenium.support.ui.ExpectedConditions$7.apply(ExpectedConditions.java:205)
  18. at org.openqa.selenium.support.ui.ExpectedConditions$7.apply(ExpectedConditions.java:201)
  19. at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:249)
  20. at com.nicholas.StepsDef.AddProduct.navigateToManageProduct(AddProduct.java:65)
  21. at ✽.navigate to manage product(file:///C:/Users/nicholaswkc/IdeaProjects/cucumber-java-skeleton/src/test/resources/Features/AddProduct.feature:7)
  22. 05:38:22.730 [TestNG-PoolService-0] ERROR com.nicholas.StepsDef.ExportProduct - java.lang.NullPointerException
  23. 05:38:22.780 [TestNG-PoolService-0] ERROR com.nicholas.StepsDef.AddProduct - org.openqa.selenium.NoSuchSessionException: invalid session id

addproductpageobject.java

  1. public By lazadaLogo = By.xpath("//a[@class='log-wrapper']/child::img");

addproduct.java

  1. public class AddProduct {
  2. private AddProductPageObject page;
  3. private ChromeDriver driver;
  4. private Logger log = LogManager.getLogger(AddProduct.class);
  5. // ======================================================================
  6. public AddProduct() {
  7. }
  8. @Given("Launch the homepage and login")
  9. public void launchTheHomepageAndLogin() {
  10. log.info("Start Login");
  11. try {
  12. WebDriverManager.chromedriver().setup();
  13. driver = new ChromeDriver();
  14. WebDriverWait timeWait = new WebDriverWait(driver, 30);
  15. page = PageFactory.initElements(driver, AddProductPageObject.class);
  16. driver.navigate().to("https://sellercenter.lazada.com.my/apps/seller/login");
  17. timeWait.until(ExpectedConditions.visibilityOfElementLocated(page.getLazadaSellerLogo()));
  18. // Input username
  19. driver.findElement(page.getUsername()).click();
  20. driver.findElement(page.getUsername()).clear();
  21. driver.findElement(page.getUsername()).sendKeys("nicholaswkc34@gmail.com");
  22. // Input password
  23. driver.findElement(page.getPassword()).click();
  24. driver.findElement(page.getPassword()).clear();
  25. driver.findElement(page.getPassword()).sendKeys("wlx_+279295");
  26. // Click submit btn
  27. driver.findElement(page.getSignInButton()).click();
  28. //assertThat(page.getPageTitle()).isEqualto("");
  29. Wait wait = new Wait();
  30. wait.implicitWait(driver, 5);
  31. } catch (Exception e) {
  32. log.error(e);
  33. }
  34. }
  35. @Given("navigate to manage product")
  36. public void navigateToManageProduct() {
  37. WebDriverWait waitProductLink = new WebDriverWait(driver, 30);
  38. waitProductLink.until(ExpectedConditions.visibilityOfElementLocated(page.getLazadaLogo()));
  39. driver.findElement(page.getProductLink()).click();
  40. WebDriverWait waitManagedProductLink = new WebDriverWait(driver, 30);
  41. waitManagedProductLink.until(ExpectedConditions.visibilityOfElementLocated(page.getManageProductLink()));
  42. driver.findElement(page.getManageProductLink()).click();
  43. }

此外,当我使用mvn命令运行时,它会弹出 org.testng.xml.XmlSuite.setParallel(Ljava/lang/String;)V 该组中突出显示了哪一项
问题:
错误的原因是什么?
maven surefire插件错误应该何时修复?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题