首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >主方法中的方法调用不可见的文件路径声明

主方法中的方法调用不可见的文件路径声明
EN

Stack Overflow用户
提问于 2016-07-06 21:25:13
回答 1查看 152关注 0票数 2

我正在开发一个应用程序,该应用程序将用于用Selenium自动化Java中的表单填充操作。目前,我已经将这两种设备都设置为可以在拇指驱动器上携带。我的代码如下:

代码语言:javascript
运行
复制
package AutoFill;

import java.io.File;
import java.util.concurrent.*;
import javafx.application.Application.*;
import javafx.application.*;
import javafx.stage.Stage;
import org.openqa.selenium.*;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.ie.*;
import org.openqa.selenium.ie.InternetExplorerDriver.*;

public class Login extends Application {

    public static final File file = new File("E:/IEDriverServer_Win32_2.53.1/IEDriverServer.exe");      //path to IEDriver on USB stick
    public static final DesiredCapabilities desCaps = DesiredCapabilities.internetExplorer();           //new desired capabilities object to set IEDriver run params
    public static final WebDriver driver = new InternetExplorerDriver(desCaps);                         //new IEDriver instance
    public static final String url = new String("url_here");                                    //starting url  


@Override
public void start(Stage primaryStage) { 
    primaryStage.show();

}

public void setup() {

    File file = new File("E:/IEDriverServer_Win32_2.53.1/IEDriverServer.exe");
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath());               //force IEDriver path
    setIEDesCaps(desCaps);                                                           //run cap setter method
    driver.findElement(By.tagName("html")).sendKeys(Keys.chord(Keys.CONTROL,"0"));   //set screen zoom to 100% to resolve webdriver errors
    driver.get(url);                                                                 //navigate to url



}


public void setIEDesCaps(DesiredCapabilities desCaps) {                              //setter method to establish IE webdriver run params                

    desCaps.setPlatform(org.openqa.selenium.Platform.WINDOWS);
    desCaps.setCapability("EnableNativeEvents", false);
    desCaps.setCapability("ignoreZoomSetting", true);
    desCaps.setJavascriptEnabled(true);

}

}

在运行此代码时(当然是带有一个真实的url ),Eclipse会生成以下错误:

代码语言:javascript
运行
复制
 java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.ie.driver system property;

实际上,我尝试在两个不同的实例中手动设置驱动程序路径--一开始是一个静态变量(这似乎是最明智的),也是在主setup()方法中设置的。单独地(当注释掉其中一个或另一个),主方法看不到驱动程序路径的位置。在我将Login类转换为应用程序的扩展之前,这个驱动程序路径是可见的,并在此代码的前一个版本中工作。

如何在当前代码中定位文件路径,使其对主方法可见?我觉得我好像漏掉了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-06 22:26:31

在类中将变量声明为Public,您应该能够在method(classname.variablename)中访问它。如果您不使用属性文件,那将是理想的位置。

如果您可以共享Main()方法,我可以进一步研究。

注:我目前没有发表评论的特权,因此不得不发表评论。不过,这可能不是一个完整的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38234033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档