- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到“无法实例化类 packageName.pageName”,将尝试在 selenium 中执行测试用例。我尝试了很多,但没有找到我犯错误的地方。
下面是我的登录页面
package detailsPkg_user;
public class Login {
public static WebDriver driver;
String username = "userName";
String password = "passWord";
String baseurl = "http://mybusiness.com/login.aspx";
WebDriverWait wait = new WebDriverWait(driver, 10); // 10 seconds
public class Details {
@Test(priority = 0)
public void loginpage() {
System.setProperty("webdriver.chrome.driver","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));
ChromeOptions options = new ChromeOptions();
options.addArguments("--test-type");
options.addArguments("--disable-extensions");
capabilities.setCapability("chrome.binary","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(capabilities);
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
driver.get(baseurl);
WebElement username = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("UserName")));
username.sendKeys(userName);
WebElement password = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("PassWord")));
password.sendKeys(passWord);
WebElement button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ButtonClick")));
button.click();
}
// Selecting a date from date picker
@Test(priority = 1)
public void RecordSearch() {
WebElement calendar = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("CalendarId")));
calendar.click();
WebElement month = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
month.click();
WebElement day = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
day.click();
WebElement submit = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Submit")));
submit.click();
}
driver.close();
}
下面是详细搜索页面代码
package detailsPkg_user;
import org.testng.annotations.Test;
import java.util.Arrays;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.JavascriptExecutor;
public class detailSearch extends Login {
@Test(priority = 2)
public void loginpageDetail() {
System.setProperty("webdriver.chrome.driver","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));
ChromeOptions options = new ChromeOptions();
options.addArguments("--test-type");
options.addArguments("--disable-extensions");
capabilities.setCapability("chrome.binary","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(capabilities);
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
driver.get(baseurl);
WebElement username = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("UserName")));
username.sendKeys(userName);
WebElement password = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Password")));
password.sendKeys(passWord);
WebElement button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ButtonClick")));
button.click();
}
// Selecting and clicking DetailSearch menu
@Test(priority = 3)
public void detailSelect() {
WebElement detailMenu = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
detailMenu.click();
// Datepicker of "From" calendar
WebElement datepickerFrom = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("calendarId01")));
datepickerFrom.click();
WebElement monthPreviousFrom = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("leftarrow_calendar_NP']/img")));
monthPreviousFrom.click();
WebElement dayFirst = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
dayFirst.click();
// Datepicker of "To" calendar
WebElement datepickerTo = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("calendarId02")));
datepickerTo.click();
WebElement monthPreviousTo = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("leftarrow_calendar_NP']/img")));
monthPreviousTo.click();
WebElement monthLast = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
monthLast.click();
}
// Click "Submit"
WebElement submit = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ctl00_contentMiddle_btnSearch")));
submit.click();
WebElement logout = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
logout.click();
driver.close();
}
}
当我尝试执行该项目时。我在控制台中收到以下错误。
org.testng.TestNGException:
Cannot instantiate class detailsPkg_user.detailSearch
at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:40)
at org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:382)
at org.testng.internal.ClassHelper.createInstance(ClassHelper.java:295)
at org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:118)
at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:183)
at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:128)
at org.testng.TestRunner.initMethods(TestRunner.java:416)
at org.testng.TestRunner.init(TestRunner.java:242)
at org.testng.TestRunner.init(TestRunner.java:212)
at org.testng.TestRunner.<init>(TestRunner.java:166)
at org.testng.remote.support.RemoteTestNG6_9_7$1.newTestRunner(RemoteTestNG6_9_7.java:26)
at org.testng.remote.support.RemoteTestNG6_9_7$DelegatingTestRunnerFactory.newTestRunner(RemoteTestNG6_9_7.java:59)
at org.testng.SuiteRunner$ProxyTestRunnerFactory.newTestRunner(SuiteRunner.java:587)
at org.testng.SuiteRunner.init(SuiteRunner.java:161)
at org.testng.SuiteRunner.<init>(SuiteRunner.java:114)
at org.testng.TestNG.createSuiteRunner(TestNG.java:1290)
at org.testng.TestNG.createSuiteRunners(TestNG.java:1277)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1131)
at org.testng.TestNG.run(TestNG.java:1048)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:152)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:57)Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:29)
... 21 more Caused by: java.lang.NullPointerException
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:212)
at org.openqa.selenium.support.ui.FluentWait.<init>(FluentWait.java:102)
at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:71)
at org.openqa.selenium.support.ui.WebDriverWait.<init>(WebDriverWait.java:45)
at detailsPkg_user.Login.<init>(Login.java:25)
at detailsPkg_user.detailSearch.<init>(CDRSearch.java:21)
... 26 more
最佳答案
那是因为您在方法中实例化了驱动程序。尝试用方法实例化它,您可以使用 @BeforeSuite
来实现。
此行 WebDriverWait wait = new WebDriverWait(driver, 10);
也存在问题。在这里,您创建了带有空驱动程序的等待实例,因为驱动程序稍后会被实例化。
我不确定为什么人们会编写如此复杂的代码。您可以实现相同的目标,而无需使其变得那么复杂。这将解决您的问题:
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
import java.util.Arrays;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
public class DetailSearch extends Login {
@BeforeSuite
public void instantiateDriver() {
System.setProperty("webdriver.chrome.driver","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));
ChromeOptions options = new ChromeOptions();
options.addArguments("--test-type");
options.addArguments("--disable-extensions");
capabilities.setCapability("chrome.binary","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(capabilities);
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
driver.get(baseurl);
}
@Test(priority = 2)
public void loginpageDetail() {
WebElement username = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("UserName")));
username.sendKeys("userName");
WebElement password = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Password")));
password.sendKeys("passWord");
WebElement button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ButtonClick")));
button.click();
}
// Selecting and clicking DetailSearch menu
@Test(priority = 3)
public void detailSelect() {
WebElement detailMenu = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
detailMenu.click();
// Datepicker of "From" calendar
WebElement datepickerFrom = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("calendarId01")));
datepickerFrom.click();
WebElement monthPreviousFrom = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("leftarrow_calendar_NP']/img")));
monthPreviousFrom.click();
WebElement dayFirst = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
dayFirst.click();
// Datepicker of "To" calendar
WebElement datepickerTo = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("calendarId02")));
datepickerTo.click();
WebElement monthPreviousTo = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("leftarrow_calendar_NP']/img")));
monthPreviousTo.click();
WebElement monthLast = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
monthLast.click();
}
// Click "Submit"
WebElement submit = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ctl00_contentMiddle_btnSearch")));
WebElement logout = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
}
import java.util.Arrays;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
public class Login {
public static WebDriver driver;
String username = "userName";
String password = "passWord";
String baseurl = "http://mybusiness.com/login.aspx";
WebDriverWait wait;
public class Details {
@BeforeSuite
public void instantiateDriver() {
System.setProperty("webdriver.chrome.driver","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));
ChromeOptions options = new ChromeOptions();
options.addArguments("--test-type");
options.addArguments("--disable-extensions");
capabilities.setCapability("chrome.binary","D:\\From H\\Selenium Package\\ChromeDriver\\chromedriver_win32\\chromedriver.exe");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(capabilities);
driver.manage().deleteAllCookies();
driver.manage().window().maximize();
wait = new WebDriverWait(driver, 10); // 10 seconds
}
@Test(priority = 0)
public void loginpage() {
driver.get(baseurl);
WebElement username = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("UserName")));
username.sendKeys("userName");
WebElement password = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("PassWord")));
password.sendKeys("passWord");
WebElement button = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("ButtonClick")));
button.click();
}
// Selecting a date from date picker
@Test(priority = 1)
public void RecordSearch() {
WebElement calendar = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("CalendarId")));
calendar.click();
WebElement month = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
month.click();
WebElement day = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("XPath")));
day.click();
WebElement submit = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Submit")));
submit.click();
}
}
}
关于java - 无法实例化类 packageName.pageName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38764292/
我有一个标题为“命令:afk”的页面。 现在,当我在网站上使用 {{PAGENAME}} 时,它总是返回“Commands:afk”。 但是,正如在 https://www.mediawiki.org
我收到“无法实例化类 packageName.pageName”,将尝试在 selenium 中执行测试用例。我尝试了很多,但没有找到我犯错误的地方。 下面是我的登录页面 package detail
我正在使用 VS2010 IDE 中的 RDLC 文件类型开发报告,但我发现 tablix 成员没有像这样的 pagename 属性 所以请告诉我这个属性在 rdlc 文件中确实缺失,或者它有另一个名
我想从当前页面对象中获取 pagename.aspx。我不想想通过 HttpContext.Current.Request 来做,因为如果我已经在页面上并且正在做某事,为什么不直接从页面中抓取它...
我使用两个 AppMeasurement 实例来发送请求, 带有 pageName 变量和 没有 pageName 变量。 在我的所有页面应用程序中,在 viewDidAppear 方法内,我发送一个
我在 Omniture 页面加载时遇到问题,我想跟踪自定义 PageName,因此我在页面底部添加此脚本 每当页面加载时,我都会通过调试器工具进行检查,PageName 分配有“abc.com:
我正在尝试实现我们 html 页面的 html5 离线缓存 功能,它适用于 jquery 1.4 版。 但是当我使用 jquery 1.8 时,问题出现在我使用 load() 的 jquery 方法加
$(document).ready(function() { $("#gt").click(function() { $("#internal").
在我的系统中,用户需要有他们的个人资料页面。我要求这些页面将显示在这样的 url 中: www.example.com/John-Doe www.example.com/Mary-Smith 如何在
我在 eclipse 中有一个 web 应用程序..它已经通过 localhost/webappname/pagename.jsp 运行 ...现在我买了一个静态IP并做了端口转发......现在我可
我是一名优秀的程序员,十分优秀!