2

私は、Selenium を使用して Java でフォーム入力操作を自動化するために使用されるアプリケーションの開発に取り組んでいます。私は現在、サムドライブでポータブルになるように両方をセットアップしています。私のコードは以下の通りです:

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 は次のエラーを生成します。

 java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.ie.driver system property;

私は実際に、2 つの異なるインスタンスでドライバー パスを手動で設定しようとしました。個別に (どちらか一方をコメントアウトする場合)、ドライバー パスのどちらの配置もメイン メソッドからは見えませんでした。このドライバ パスは、Login クラスを Application の拡張に変更する前に、このコードの以前の版で表示され、機能していました。

main メソッドから見えるように、現在のコードにファイル パスを配置するにはどうすればよいですか? ここで何かが足りない気がします。

4

1 に答える 1