java.lang.NullPointerException Selenium 2 类

2024-02-04

当我的程序从本地计算机运行时运行良好,无需使用带有远程 Web 驱动程序的 selenium 网格。但是,当我使用带有远程 Web 驱动程序的 selenium 网格设置相同的测试用例时。在 eclipse 中收到消息说:

java.lang.NullPointerExceptionat PP_OBJ_Login.Adminlogin(PP_OBJ_Login.java:38)
at PP_Main.step01_Login(PP_Main.java:86)

现在我知道上面的意思是第 38 行和第 86 行是两个类中的问题所在,我的问题是我不知道为什么当我将 selenium grid 与远程 Web 驱动程序一起使用时会发生这种情况。

public class PP_Main {

     private static WebDriver driver;
     private static String homeUrl;
     //private String homeTitle ="Google";
     @SuppressWarnings("unused")
     private boolean acceptNextAlert = true;
     private static StringBuffer verificationErrors = new StringBuffer();


     @BeforeClass
     public static void setUp() throws Exception {

      //----------This works and envokes IE browser -------
      System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");
      DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
      cap.setCapability(CapabilityType.BROWSER_NAME, DesiredCapabilities.internetExplorer());
      cap.setBrowserName("internet explorer");
      cap.setPlatform(Platform.ANY);
      RemoteWebDriver driver = new RemoteWebDriver(new URL("http://51.19.210.111:5555/wd/hub"), cap);
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
      String url = "https://wfn-iat.adp.com/public/index.htm";
      driver.get(url);

     }
  @Test
public void step01_Login() throws Exception {
 PP_OBJ_Login.AdminVisiable(driver);
 PP_OBJ_Login.Adminlogin(driver).click();-- -> line 86
 PP_OBJ_Login.UserName(driver).sendKeys("NorfolkAutoUser6@adp");
 PP_OBJ_Login.Submitbtn(driver).click();
 PP_OBJ_Login.Password(driver).sendKeys("iatiat01");
 Thread.sleep(2000);
 PP_OBJ_Login.Submitbtn(driver).click();
 Thread.sleep(5000);
}


PP_OBJ_Login.Java


public class PP_OBJ_Login {

 private static WebElement element = null;

 // WebElement Adminlogin
 public static WebElement Adminlogin(WebDriver driver) {-- -- -> Line 38
  element = driver.findElement(By.id("adminLogin"));
  return element;
 }

 // WebElement input Field
 public static WebElement UserName(WebDriver driver) {
  element = driver.findElement(By.id("USER"));
  return element;
 }

我希望它可以使用 selenium 网格和远程网络驱动程序来工作。有什么办法可以解决空指针问题吗?


您的问题是,您将“驱动程序”定义为类成员,但没有实例化它。所以它始终为空。

 public class PP_Main {

    private static WebDriver driver;
    private static String homeUrl;
    //...

并且您在 setUp() 中实例化的驱动程序仅在方法本身内部有效。尽管它具有完全相同的名称,但它不是您全局定义的“驱动程序”。

@BeforeClass
public static void setUp() throws Exception {

    // ...

    cap.setPlatform(Platform.ANY);
    RemoteWebDriver driver = new RemoteWebDriver(new URL("http://51.19.210.111:5555/wd/hub"), cap);

    // ...   
}

以这种方式实例化它

public class PP_Main {

    private static RemoteWebDriver driver;
    private static String homeUrl;
    //...


   @BeforeClass
   public static void setUp() throws Exception {

        // ...

        cap.setPlatform(Platform.ANY);
        driver = new RemoteWebDriver(new URL("http://51.19.210.111:5555/wd/hub"), cap);

        // ...   
}

这应该有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.lang.NullPointerException Selenium 2 类 的相关文章

随机推荐

  • 任务控制选项 - 自定义条件 - 在先前失败或超时时运行任务

    是否有一个选项可以设置自定义条件来测试上一个任务是否失败或超时 目前 我正在使用Only when a previous task has failed当任务失败时它会起作用 如果任务超时 则不会将其视为错误并会跳过 那么我需要一个自定义条
  • Dart 确保类中的可选布尔值不为空

    由于它是一个可选值 有时会为空 那么如何避免它抛出错误呢 这是唯一的方法吗 class QText extends StatelessWidget QText this text this size this bold final Stri
  • 将第二个项目添加到堆栈窗格时,第一个项目会丢失其 Event/MouseOn。为什么?我该如何修复? JavaFX

    我有一个堆栈窗格 当我将第二个项目添加到堆栈窗格时 两者都会显示 但我无法再单击第一个项目 它变得 不可点击 我在 setonmouse 中定义的内容不起作用 它适用于我的第二个项目 如果我切换它们在堆栈窗格中的顺序 则另一个可以工作 但不
  • 在 OS X 中创建目录硬链接的 Unix 命令是什么?

    如何在 OS X 中创建指向目录的硬链接 而不是符号链接或 Mac OS 别名 我已经知道命令 ln target destination 但仅当目标是文件时才有效 我知道 Mac OS 与其他 Unix 环境不同 允许硬链接到文件夹 例如
  • JMS事务

    数据库事务是一个熟悉的概念 try updateDB commit catch error rollback 如果发生任何错误 updateDB 所做的任何更改都将被丢弃 我想知道消息队列事务回滚将撤消什么 try EDIT swapped
  • 角度引导模式在输入点击时打开

    在我的控制器中我有方法 scope openJukeboxesModalToGroup 打开模式弹出窗口 scope search Jukeboxes 在页面上搜索 scope keyPressed 捕获按键 在带有表格的部分
  • Git 包文件被截断

    当尝试将 Egit 与 Eclipse 一起使用时 我随机收到错误 包文件被截断 我不知道这是如何以及为何发生的 即使再次导入项目也没有帮助 这里有什么问题 我遇到了同样的错误 并认识到当我尝试在 Eclipse 中导入并打开本地 git
  • Maven读取属性文件中的环境变量

    如何读取属性文件中的系统环境变量 我正在使用 MyBatis maven 插件进行数据库迁移 MyBatis 根据环境使用属性文件 我正在尝试读取属性文件中的环境变量 例如 开发 property username env username
  • 在 Firefox 中使用 morris.js 脚本不再回答任何错误

    我正在使用 morris js 库http www oesmith co uk morris js http www oesmith co uk morris js 为了为网站创建图表 它适用于 Opera Internet Explore
  • 如何在Python中使用subprocess.call杀死一个调用的子进程? [复制]

    这个问题在这里已经有答案了 我正在使用调用命令 subprocess call cmd shell True 该命令不会自动终止 怎么杀掉它呢 Since subprocess call等待命令完成 您无法以编程方式终止它 您唯一的办法是通
  • suPHP 有安全性吗?

    我不久前问过这个问题 尽管我提供了一些赏金 但我从未得到太多答案 请参阅here https stackoverflow com questions 8032140 implementing log in alongside suphp 更
  • App.config 似乎被忽略

    作为重构操作的结果 我有了这个类库 我添加了一个 App config 文件并添加了如下内容
  • Spring Websockets STOMP - 获取客户端IP地址

    有没有办法获取STOMP客户端IP地址 我正在拦截入站通道 但我看不到任何方法来检查 IP 地址 任何帮助表示赞赏 您可以在握手期间将客户端 IP 设置为 WebSocket 会话属性HandshakeInterceptor public
  • 检查是否启用了锁定

    我必须检查设置中是否启用了系统锁定 我使用下面的代码行 boolean b android provider Settings System getInt getContentResolver Settings System LOCK PA
  • 如何使用新的 Slick 2.0 HList 克服 22 列限制?

    我目前正在编写 Slick 代码来针对具有两个表 gt 22 列的旧模式 我如何使用新的 HList 代码 http slick typesafe com doc 2 0 0 M3 api scala slick collection he
  • 经过后台推送的一些测试/调试后,iPhone 上的“pushDisallowed”和“决定:绝对不能继续”

    我正在创建一个 Xamarin Forms 应用程序 它通过 Azure 通知中心使用后台推送 该应用程序针对 Android 和 iOS 经过一些初步原型设计和测试后 一切在两个平台上都运行良好 对于 iOS 我发送包含以下内容的推送 a
  • 如何阻止 UIBarButtonItem 文本被截断?

    我有一个UIBarButtonItem在导航栏中 文本标题为 保存 当我切换到全屏时UIPopoverController然后关闭它 我的 UIBarButtonItem 中的文本被截断为 S e 对于所有其他的 Segues 和视图 我返
  • VBA Excel - IFERROR 和 VLOOKUP 错误

    我正在尝试在 Excel VBA 中创建与 IFERROR VLOOKUP 1 公式等效的内容 其中该函数将在数据表中查找文本 如果文本位于表中 则返回第五列中的数字如果不是 则为 1 我已经在 Excel 中测试了上述公式 它给了我想要的
  • 无缝 HTML5 视频循环

    我进行了广泛的搜索以找到解决此问题的方法 但没有成功 我创建了一个 4 秒的视频剪辑 可以在编辑器中无缝循环 然而 当剪辑通过 Safari Chrome 或 Firefox 在页面中运行时 从结尾到开头的播放会出现一个小但明显的暂停 我尝
  • java.lang.NullPointerException Selenium 2 类

    当我的程序从本地计算机运行时运行良好 无需使用带有远程 Web 驱动程序的 selenium 网格 但是 当我使用带有远程 Web 驱动程序的 selenium 网格设置相同的测试用例时 在 eclipse 中收到消息说 java lang