Java 浏览器未为第二个TestNG测试用例启动

Java 浏览器未为第二个TestNG测试用例启动,java,selenium,maven,testng,Java,Selenium,Maven,Testng,浏览器未针对TestNG测试组的第二个测试用例启动。 尝试使用前后测试,但浏览器仍无法启动。同时添加检查浏览器是否正在运行。不知道我错过了什么 错误: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#Email"}

浏览器未针对TestNG测试组的第二个测试用例启动。 尝试使用前后测试,但浏览器仍无法启动。同时添加检查浏览器是否正在运行。不知道我错过了什么

错误:

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"#Email"}
  (Session info: chrome=91.0.4472.77)
这会导致此时未启动b浏览器

驾驶员等级:

package com.portalHelpers;
import org.openqa.selenium.Alert;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.WebDriver;

import java.io.File;
import java.util.Date;
import org.openqa.selenium.Platform;
import org.openqa.selenium.remote.service.DriverService;
import org.openqa.selenium.support.events.EventFiringWebDriver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;

import java.io.IOException;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import static java.lang.String.valueOf;

public class WebDriverHelper extends EventFiringWebDriver {

        public static RemoteWebDriver remoteDriver;
        protected static HtmlUnitDriver htmlDriver;
        protected static Alert _alert;
        protected static DriverService cds;
        private static String driverClass = System.getProperty("driverClass");

        public static long now = new Date().getTime();
        public static com.itextpdf.text.Document dataFeed;

        public final static String DefaultTimeOut = "40000";
        public final static int TimeOut = 90;


        protected static String chrome_driver_location = "/Users/me/Downloads/chromedriver";

        public static String url = System.getProperty("url");
        public static String browser = System.getProperty("browser");
        private static String platform = Platform.getCurrent().name();
        private static String CHROME_DRIVER = "chrome_driver";


        //******************URLs************************************************************//

       public static String url_test = "www.google.com";
       public static String url_live = "www.google.com";

        //******************Browser settings************************************************************//

        //Browser settings

        static {
//
            if (browser.equalsIgnoreCase("chrome")) {
                if (platform.equalsIgnoreCase("Mac")) {
                    CHROME_DRIVER = CHROME_DRIVER + "_mac";
                } else if (platform.equalsIgnoreCase("LINUX")) {
                    CHROME_DRIVER = CHROME_DRIVER + "_linux";
                } else {
                    CHROME_DRIVER = CHROME_DRIVER + "_win.exe";
                }
                setWebDriverToChrome();
            }


            Runtime.getRuntime().addShutdownHook(new Thread() {
                @Override
                public void run() {
                    remoteDriver.close();
                }
            });
        }

        static {
            if (url.equalsIgnoreCase("url_test")) {
                open_test();
            } else if (url.equalsIgnoreCase("url_live")) {
                open_live();

            }

        }

    public WebDriverHelper() {
            super(remoteDriver);
            manage().window().maximize();
            manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        }

        @BeforeTest
        public void setUp ()  throws Exception{

            setWebDriverToChrome();}


        @AfterTest
        public void tearDown () throws Exception{
        if(remoteDriver !=null){
                remoteDriver.close();

            }}


        public static void setWebDriverToChrome () {

         System.setProperty("webdriver.chrome.driver",chrome_driver_location);
            cds = new ChromeDriverService.Builder()

                    .usingDriverExecutable(new File(chrome_driver_location))
                    .usingAnyFreePort()
                    .build();

            try {
                cds.start();
            } catch (IOException e) {
                throw new IllegalStateException(e.getMessage());
            }

            ChromeOptions opt = new ChromeOptions();
            opt.addArguments("disable-infobars");
            opt.addArguments("--start-maximized");
            opt.addArguments("--disable-extensions");
            remoteDriver = new RemoteWebDriver(cds.getUrl(), opt);
        }


        public void openWebPage (String url){

            //Get url and maximize the window
            remoteDriver.get(url);
            remoteDriver.manage().window().maximize();
        }


        public static void open_test () {
            remoteDriver.get(url_test);
            remoteDriver.manage().window().maximize();

        }


        public static void open_live() {
            remoteDriver.get(url_live);
           // remoteDriver.manage().window().maximize();

        }

        public static WebDriver getSelenium () {
            if ((remoteDriver == null) && (!"noBrowser".equals(driverClass))) {
                throw new IllegalStateException("Selenium client is not initialised.");
            }
            return remoteDriver;
        }


    }
测试等级:

package Testsuites;

import com.portalHelpers.PageObjects;
import com.portalHelpers.WebDriverHelper;
import com.portalHelpers.SeleniumMethodsHelper;
import org.testng.Assert;
import org.testng.annotations.Test;


public class testSuite extends WebDriverHelper {
PageObjects pageObjects =  new PageObjects();
SeleniumMethodsHelper seleniumMethodsHelper = new SeleniumMethodsHelper();
String user1 = "user1t@google.com";
String standardPass = "1234";
String user2 = "user2@gmail.com";

@Test(groups = "MainFlowTests")
public void preparation(){
String actual_url = getCurrentUrl();
System.out.println(actual_url);
//sending the username and password parameters to the login method//
PageObjects.login_logic(remoteDriver,user1, standardPass);
//Asserting the user logged in is the one we used and that we are on logged in//
String name = PageObjects.account_Email().getText();
System.out.println(name);
Assert.assertEquals(name,useer1);
seleniumMethodsHelper.sleep(3);
SeleniumMethodsHelper.mouseOver(PageObjects.promo_Button());
seleniumMethodsHelper.sleep(8);
}

   @Test(groups = "MainFlowTests")


    public void offerCreation(){
        String actual_url = getCurrentUrl();
        System.out.println(actual_url);
        //sending the username and password parameters to the login method//
        //PageObjects.email_Field().click();
        PageObjects.login_logic(remoteDriver,dryFoodsCam, standardPass);
        seleniumMethodsHelper.sleep(3);


    }
}
图显示了TestNG配置

希望你能发现我在这里错过了什么,或者有什么不对劲。
谢谢

您在哪里定义了测试用例?在xml中?测试用例位于测试类中,并使用组名定义为@Test。TestNG的配置在IDE的TestNG ui版本上。不在xml中。我还找不到解决方案,尽管它看起来像是配置或者类似于TestNG的前后测试。不确定。现在必须回到Junit。