直到昨天,代码还完全正常运行。现在,当我试图运行任何测试用例时,Selenium(使用Java)在主页本身抛出Java.lang.NullPointerException。下面是一个由于错误而失败的简单测试用例。
下面是我的测试类,它正在调用TestBase类的构造函数,然后初始化驱动程序对象。当控件进入HomePage.ClickSearchLink()
方法时,测试结束并出现错误。
package com.ss.qa.testcases;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import org.openqa.selenium.chrome.*;
import com.ss.qa.base.TestBase;
import com.ss.qa.pages.HomePage;
import com.ss.qa.pages.SearchPage;
public class SearchPageTest extends TestBase{
HomePage homepage;
SearchPage searchpage;
SearchPageTest(){
super();
}
@BeforeMethod
public void setUp(){
initialization();
homepage = new HomePage();
searchpage = homepage.clickSearchLink();
}
@Test
public void verifyResultCount() {
int count = searchpage.countResults("a");
Assert.assertEquals(count, 15);
}
@AfterMethod
public void tearDown() {
driver.quit();
}
}
下面是我的TestBase类,它正在调用Test基类的构造函数并初始化驱动程序对象
package com.ss.qa.base;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Driver;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.events.EventFiringWebDriver;
import com.ss.qa.util.TestUtil;
import com.ss.qa.util.WebEventListener;
public class TestBase {
public static WebDriver driver = null;
public static Properties prop;
public static EventFiringWebDriver e_driver;
public static WebEventListener eventListener;
public TestBase(){
try {
prop = new Properties();
FileInputStream ip = new FileInputStream("D:\\Users\\eclipse-
workspace\\src\\main\\java\\com\\ss\\qa\\config\\config.properties");
prop.load(ip);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void initialization() {
String browserName = prop.getProperty("browser");
if (browserName.equalsIgnoreCase("chrome")) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\Downloads\\"chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
System.out.println("driver=" + driver);
}
else if (browserName.equalsIgnoreCase("FF")) {
System.setProperty("webdriver.gecko.driver", "C:\\Users\\Downloads\\geckodriver-v0.21.0-win64\\geckodriver.exe");
driver = new FirefoxDriver();
}
e_driver = new EventFiringWebDriver(driver);
eventListener = new WebEventListener();
e_driver.register(eventListener);
driver = e_driver;
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.manage().timeouts().pageLoadTimeout(TestUtil.PAGE_LOAD_TIMEOUT , TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(TestUtil.IMPLICIT_WAIT , TimeUnit.SECONDS);
driver.get(prop.getProperty("url"));
}
}
<!-- Method in Event Listener class which is showing in error -->
public void afterFindBy(By arg0, WebElement arg1, WebDriver arg2) {
System.out.println("Find happened on " + arg1.toString() + " Using method " + arg0.toString());
}
好心建议。
WebEventListener.java:31
:保持空检查,您正在使用的元素之一引发空指针异常。
如果您可以在第31行发布WebEventListener.java的打印内容,那么我们就可以更好地检查问题。为此,请更改以下行:
public void afterFindBy(By arg0, WebElement arg1, WebDriver arg2) {
System.out.println("Find happened on " + arg1 + " Using method " + arg0);
}
直到昨天,代码都运行得很好。现在,当我尝试运行任何测试用例时,Selenium(使用Java)会在主页本身抛出java.lang.NullPointerException。下面是一个由于错误而失败的简单测试用例。 下面是我的测试类,它调用TestBase类的构造函数,然后初始化驱动程序对象。当控件进入<code>主页时。单击SearchLink()方法,测试结束,错误出现。 下面是我的TestBa
我有一些jQuery,可以将定义列表转换为可扩展/可折叠的常见问题列表。 我在整个网站上有几个常见问题的链接,点击它们会将您发送到常见问题页面并展开相关问题,问题是一些常见问题的答案有指向其他问题的链接,而散列链接会跳到相关问题,但不会展开答案。 这是因为jQuery位于$(文档)中。就绪(function(),因此代码仅在页面重新加载后激活?是否需要触发重新加载? CHeers 有关完整代码,请
设置按钮-datatoggle不会更改,默认情况下,aria扩展='False'。 单击页面中的任何元素时,aria epxanded值将从False变为True。但在此之前,此按钮不起作用。 有什么帮助吗?
这是我的问题。 我有一个像这样的简单表格(示例): null null 并且我正在尝试列的名称,同时单击元素。 我想这可能是一个简单的解决办法但我找不到。 提前致谢
我试图点击以下按钮使用xpath在selenium, 我试过下面的代码, 我得到以下错误, 组织。openqa。硒。StaleElementReferenceException:stale元素引用:元素未附加到页面文档 我想我之所以面临这个问题,是因为它是作为一个div而不是按钮封闭的。
问题内容: 我有以下HTML: 我下面的单击“ Google搜索”按钮的代码在WebDriver中使用Java时效果很好。 我想将JavaScript与WebDriver一起使用以单击按钮。我该怎么做? 问题答案: 通过JavaScript执行点击具有一些您应该注意的行为。例如,如果绑定到元素事件的代码调用,则可能会发现Selenium代码挂起,具体取决于浏览器驱动程序的实现。也就是说,您可以使用