gpt4 book ai didi

java - 无法在 Eclipse 上使用 Java 在两个类之间传递 Selenium WebDrivers

转载 作者:行者123 更新时间:2023-12-02 10:53:04 26 4
gpt4 key购买 nike

我是 Selenium Webdriver 的新手,在类之间传递驱动程序时遇到问题。驱动程序类使用 switch case 来确定用户想要使用哪个驱动程序,Firefox 还是 Chrome。一旦用户选择了一个,就会加载正确的驱动程序,并询问用户是否要运行 Facebook 或 Twitter。当我选择其中一个时,驱动程序返回 null,而不是转到正确的 URL。以下是我收到的错误。我正在使用 Java 在 Eclipse 上运行它。

Exception in thread “main” java.lang.NullPointerException at

selenium.social.facebook(social.java:32) at

selenium.social.(social.java:13) at

selenium.driver.(driver.java:23) at

selenium.main.main(main.java:19)

下面是使用的代码:

主类

  package selenium;
import java.util.Scanner;
public class main {
private static int bflag = 0;
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Which browser would you like to run");
System.out.println("1. Chrome ");
System.out.println("2. Firefox");
Scanner input = new Scanner(System.in);
bflag = input.nextInt();
driver frame =new driver();
}
public static int getFlagValue()

{
return bflag;}}

车手级别

    package selenium;

import java.util.Scanner;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class driver {

private static int socialflag = 0;
public static WebDriver driver;


public driver() {

switch (main.getFlagValue()) {

case 1:

chrome();
socialsite();
social frame = new social();

break;

case 2:

firefoxdriver();
socialsite();
social frame1 = new social();
break;

default:

break;
}
}

public void chrome()
{
System.setProperty("webdriver.chrome.driver", "/Users/lcren1026/Drivers/chromedriver");
ChromeDriver driver = new ChromeDriver();
}

public void firefoxdriver()
{
//Points to the browser driver
System.setProperty("webdriver.gecko.driver", "/Users/lcren1026/Drivers/geckodriver");
FirefoxDriver driver = new FirefoxDriver();
}

public void socialsite()
{
System.out.println("Which social site would you like to run with the browser selected?");
System.out.println("1. Facebook ");
System.out.println("2. Twitter");

Scanner input = new Scanner(System.in);
socialflag = input.nextInt();
}

public static int getSFlagValue()

{
return socialflag;
}

public static WebDriver getDriverFlagValue()

{
return driver;
}}

社会阶层

package selenium;

import org.openqa.selenium.WebDriver;

public class social {

public social() {

switch (driver.getSFlagValue()) {

case 1:

facebook();

break;

case 2:

twitter();

break;

default:

break;
}
}

public void facebook()
{
//WebDriver drive = driver.getDriverFlagValue();
driver.getDriverFlagValue().navigate().to( "www.facebook.com");
}

public void twitter()
{
//WebDriver drive = driver.getDriverFlagValue();
driver.getDriverFlagValue().navigate().to( "www.twitter.com");
}}

最佳答案

我明白了。

'驱动程序 = new ChromeDriver();'而不是“ChromeDriver 驱动程序 = new ChromeDriver();”有效。

关于java - 无法在 Eclipse 上使用 Java 在两个类之间传递 Selenium WebDrivers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52013509/

26 4 0
文章推荐: java - 实现双击图像
文章推荐: Java,Maven,连接SQL,没有合适的驱动程序
文章推荐: java - 如何创建一个通用方法将 List 转换为 ObservableList 和 Map