Java 浏览器未为第二个TestNG测试用例启动
浏览器未针对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"}
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。