将驱动程序参数传递给main之外的方法

时间:2019-12-12 17:53:35

标签: selenium selenium-webdriver

我正在尝试将WebDriver对象传递到我的主方法之外,但是没有将其解析为变量。 我正在尝试将“ driver a”参数传递给方法NavigateGoogle。使用硒不是一种常见的方式,但是它是新事物,它一直困扰着我。下面的代码,有什么建议吗?

package day2;

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


public class WebDriverDemo {

    public static void main(String[] args) {
        WebDriver driver  = new ChromeDriver();
        System.setProperty("webdriver.chrome.driver","C:\\Users\\Abu\\Desktop\\Web Drivers\\chromedriver.exe");

    }

    public boolean NavigateGoogle(driver a) {
        //'Driver a' parameter cannot be resolved to a type
        a.get("http://www.google.com");
        return true;

    }

}

2 个答案:

答案 0 :(得分:1)

我认为您是要对方法签名:

public boolean NavigateToGoogle(WebDriver a) { 
    a.get("http://www.google.com");
    return true;
}

WebDriver是一种类型,但driver不是。您之前声明了WebDriver driver,所以方法签名参数应该匹配。

此外,您在尝试初始化chromedriver.exe之后设置WebDriver路径,这是错误的。声明应翻转:

public static void main(String[] args) {

    System.setProperty("webdriver.chrome.driver","C:\\Users\\Abu\\Desktop\\Web Drivers\\chromedriver.exe");
    WebDriver driver  = new ChromeDriver();
}

答案 1 :(得分:0)

据我所知,您要寻找的是通过NavigateGoogle(driver a)方法传递驱动程序,如果这正是您要寻找的,那么下面的解决方案有望对您有所帮助。...

public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver","C:\\Users\\Abu\\Desktop\\Web Drivers\\chromedriver.exe");
        WebDriver driver  = new ChromeDriver();
    NavigateGoogle(driver);

    }

在上面的代码中,设置了系统路径,并将WebDriver的一个实例定义为“驱动程序”。下一行代码驱动程序传递给函数NavigateGoogle(driver)

 public boolean NavigateGoogle(WebDriver driver) {
        a.get("http://www.google.com");
        return true;
    }

上面的代码是定义为传递驱动程序的函数。

WebDriver driver  = new ChromeDriver(); //"driver" is just a instance of WebDriver 
WebDriver a = new ChromeDriver(); //"a" is just a instance of WebDriver 

遵循一个自我解释的实例总是好的。