Является ли InvalidArgumentException sureCleanSession известной проблемой IEDriverServer 3.12.0 или я ее неправильно создаю? - PullRequest
0 голосов
/ 19 мая 2018

Когда я пытаюсь создать экземпляр IEDriverServer 3.12.0 следующим образом:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class StartInternetExplorer {
    public static void main(String[] args) {
        // Add to Windows PATH variable: C:\IEDriverServer_Win32_3.12.0\;
        String executable = "C:\\IEDriverServer_Win32_3.12.0\\IEDriverServer.exe";
        System.setProperty("webdriver.ie.driver", executable);
        WebDriver driver = new InternetExplorerDriver();
        driver.get("https://www.google.com");
        driver.quit();
    }
}

Я вижу эту трассировку стека исключений:

Started InternetExplorerDriver server (32-bit)
3.12.0.0
Listening on port 46039
Only local connections are allowed
Exception in thread "main" org.openqa.selenium.InvalidArgumentException: All firstMatch elements failed validation
Invalid capabilities in firstMatch element 0: unknown capability named ensureCleanSession
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'
System info: host: 'XXXXXXXX', ip: '127.0.0.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_161'
Driver info: driver.version: InternetExplorerDriver
remote stacktrace: 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57)
    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104)
    at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
    at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:545)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:209)
    at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:223)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:215)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:152)
    at app.StartInternetExplorer.main(StartInternetExplorer.java:11)

Я не знаю, где "sureCleanSession"исходят аргументы, поэтому я не знаю, означает ли это, что в 3.12.0 есть ошибка или я не создаю экземпляр IEDriverServer должным образом.

Ответы [ 2 ]

0 голосов
/ 18 августа 2018

Я не могу повторить это в выпуске 3.14.0 - Решением было дождаться нового выпуска.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class StartInternetExplorer {
    public static void main(String[] args) {
        // Add to Windows PATH variable: C:\IEDriverServer_Win32_3.14.0\;
        String executable = "C:\\IEDriverServer_Win32_3.14.0\\IEDriverServer.exe";
        System.setProperty("webdriver.ie.driver", executable);
        WebDriver driver = new InternetExplorerDriver();
        driver.get("https://www.google.com");
        driver.quit();
    }
}
0 голосов
/ 08 августа 2018

Попробовал передать 4 слэша в URL и все заработалоКажется, они внесли некоторые изменения в API селена, но я не уверен.Это сработало для меня:

import org.openqa.selenium.ie.InternetExplorerDriver;

public class Money {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Hello World");
        System.setProperty("webdriver.ie.driver", "IEDriverServer.exe");
        InternetExplorerDriver driver=new InternetExplorerDriver();
        driver.get("https:\\\\www.google.com");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...