从另一个类调用变量时出现NullPointerException

时间:2016-07-06 15:09:12

标签: java selenium automated-tests

我是一名QA工程师,负责编写测试脚本。我试图设置一个URL字符串变量,该变量等于方法中当前页面的URL,并在测试方法中调用包含该变量的方法。

*编辑**** 最初我认为这是变量本身的一个问题但事实并非如此。我已经调整了我的问题以更好地代表问题

当我在与测试相同的类和方法中启动和定义URL变量时,它可以正常工作

public void RFPsCreatedStatusTest(){
    RequestsataGlance.RFPinProgressbtnclick();
    RequestsataGlance.CreatedClick();
    String url = driver.getCurrentUrl();
   System.out.println(url);
Assert.assertTrue(url.contains("url.com"), "Incorrect Page, SR list call status does not match status selected ");

但是当我在测试方法和类之外创建并调用public void(){} URL方法[createdassertion]时,它不起作用。思考?

 @Test
        public void RFPsCreatedStatusTest(){
            RequestsataGlance.RFPinProgressbtnclick();
            RequestsataGlance.CreatedClick();
            RequestsataGlance.Createdassertion();


        }`

2 个答案:

答案 0 :(得分:2)

下面的行没用,因为您将在下一个语句中重新定义url变量

url = new String();
行后

url = driver.getCurrentUrl();

url将包含浏览器网址,那为什么它应包含字符串“[期望结果]”?当然它不会,因为它将包含一个URL

编辑1

来自定义

assertTrue(java.lang.String message, boolean condition) 

所以请按以下方式使用

Assert.assertTrue("Incorrect Page, SR list call status does not match status selected ", url.contains("whatever.com"));

答案 1 :(得分:1)

代码中任何可以为null的唯一方法是

driver.getCurrentUrl()

返回null。 毕竟,你写了一个测试,发现了一个问题。试试吧! ; - )

顺便说一句:如果您只是写下来,您的代码将更容易阅读:

String url = driver.getCurrentUrl();