Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SoapUI项目执行后WebDriver异常_Java_Selenium_Soap_Soapui - Fatal编程技术网

Java SoapUI项目执行后WebDriver异常

Java SoapUI项目执行后WebDriver异常,java,selenium,soap,soapui,Java,Selenium,Soap,Soapui,请帮助解决以下问题 我正在使用Eclipse。我的主类调用下面的2类/java文件 1) Invoke\u SoapUI\u Project.java(执行SoapUI项目) 2) Run\u Selenium\u Script.java(这将打开Firefox中的一个URL) 我的主要函数调用了上面的Invoke_SoapUI_Project.java,触发了“soapuixml项目”的执行,并且运行良好 然后,我的第二个函数“Run\u Selenium\u Script.java”调用并尝

请帮助解决以下问题

我正在使用Eclipse。我的主类调用下面的2类/java文件

1)
Invoke\u SoapUI\u Project.java
(执行SoapUI项目) 2)
Run\u Selenium\u Script.java
(这将打开Firefox中的一个URL)

我的主要函数调用了上面的
Invoke_SoapUI_Project.java
,触发了“soapuixml项目”的执行,并且运行良好

然后,我的第二个函数“
Run\u Selenium\u Script.java
”调用并尝试打开其中一个网页。但是在我定义
webdriver
对象的那一行中得到下面的错误。i、 e
driver=新的firefoxDriver()

但是如果我对
Invoke_SoapUI_Project.java
进行注释,那么我不会得到以下异常,firefox对象会正确创建并打开我的URL

我得到以下例外情况:

org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.44.0', revision: '76d78cf323ce037c5f92db6c1bba601c2ac43ad8', time: '2014-10-23 13:11:40'
System info: host: 'BDC8-L-HP26ZR1', ip: '127.0.0.1', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_31'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:593)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:126)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:191)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:99)
    at Services.CommonFunctions.setUp(CommonFunctions.java:1481)
    at Services.CommonFunctions.obj_run(CommonFunctions.java:1631)
    at Services.CSS_Validation_a.print(CSS_Validation_a.java:283)
    at Services.CSS_main.main(CSS_main.java:67)
Caused by: java.lang.NullPointerException
    at org.apache.http.impl.conn.SystemDefaultRoutePlanner.determineProxy(SystemDefaultRoutePlanner.java:79)
    at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:76)
    at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:124)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:183)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
    at org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:215)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:184)
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:165)
    at org.openqa.selenium.firefox.FirefoxDriver$LazyCommandExecutor.execute(FirefoxDriver.java:362)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:572)
    ... 10 more
org.openqa.selenium.remote.UnreachableBrowserException:无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败。
构建信息:版本:“2.44.0”,修订版:“76d78cf323ce037c5f92db6c1bba601c2ac43ad8”,时间:“2014-10-23 13:11:40”
系统信息:主机:'BDC8-L-HP26ZR1',ip:'127.0.0.1',os.name:'Windows 7',os.arch:'x86',os.version:'6.1',java.version:'1.8.031'
驱动程序信息:Driver.version:FirefoxDriver
位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:593)
位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240)
位于org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:126)
位于org.openqa.selenium.firefox.FirefoxDriver(FirefoxDriver.java:191)
位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:186)
位于org.openqa.selenium.firefox.FirefoxDriver(FirefoxDriver.java:182)
位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:99)
位于Services.CommonFunctions.setUp(CommonFunctions.java:1481)
在Services.CommonFunctions.obj_运行(CommonFunctions.java:1631)
在Services.CSS\u Validation\u a.print(CSS\u Validation\u a.java:283)
at Services.CSS_main.main(CSS_main.java:67)
原因:java.lang.NullPointerException
位于org.apache.http.impl.conn.SystemDefaultRoutePlanner.determineProxy(SystemDefaultRoutePlanner.java:79)
位于org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:76)
位于org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:124)
位于org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:183)
在org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
在org.apache.http.impl.client.CloseableHttpClient.execute上(CloseableHttpClient.java:57)
位于org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:215)
位于org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:184)
位于org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:165)
位于org.openqa.selenium.firefox.FirefoxDriver$lazycomandexecutor.execute(FirefoxDriver.java:362)
位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:572)
... 10多
根据

您需要设置firefox驱动程序并将其作为系统属性提供。 例如:
System.setProperty(“webdriver.firefox.driver”,“c:/webdriver/firefoxdriverpath”)

我们在这里偶然发现了同样的问题(花了我们不少时间),但我们设法解决了这个问题:

问题似乎是SoapUI将默认proxyselector设置为null,而Apache httpclient不希望出现这种情况

重现问题:

WsdlProject wsdlProject = new WsdlProject("");
WebDriver driver = new FirefoxDriver();
解决方法:

ProxySelector proxy = ProxySelector.getDefault();
WsdlProject wsdlProject = new WsdlProject("");
ProxySelector.setDefault(proxy);
WebDriver driver = new FirefoxDriver();
peidong hu在两天前为standalone发送了一个补丁(从那里获取解决方案):

我已经为selenium提交了一份错误报告,将使用以下详细信息进行更新:


我还将为SoapUI提交一份报告。

我在使用SoapUI 5时也发现了这个问题。我检查了源代码。 在类
ProxyUtils
中,如果未设置代理或未将代理设置为自动,则方法
setGlobalProxy()
proxySelector
设置为null

 public static void setGlobalProxy( Settings settings )
    {
    ProxySelector proxySelector = null;
    ProxySettingsAuthenticator authenticator = null;
    if( proxyEnabled )
    {
        if( autoProxy )
        {
        proxySelector = new ProxyVoleUtil().createAutoProxySearch().getProxySelector();
        }
        else
        {
            proxySelector = getManualProxySelector( settings );
        }
        if( proxySelector != null )
        {
            // Don't register any proxies for other schemes
            proxySelector = filterHttpHttpsProxy( proxySelector );
        }
        authenticator = new ProxySettingsAuthenticator();
    }
    *ProxySelector.setDefault( proxySelector );*
    Authenticator.setDefault( authenticator );
    HttpClientSupport.setProxySelector( proxySelector );
    HttpClientSupport.getHttpClient().setCredentialsProvider( getProxyCredentials( settings ) );
    }
在Windows操作系统中,
proxySelector=new ProxyVoleUtil().createAutoProxySearch().getProxySelector()也将为空

 if (PlatformUtil.getCurrentPlattform() != PlatformUtil.Platform.WIN) {
            proxySearch.addStrategy(ProxySearch.Strategy.BROWSER);
            // For Windows both BROWSER and OS_DEFAULT will end up with an IEProxySearchStrategy.
            // The call in createPacSelector to winHttpDetectAutoProxyConfigUrl is quite slow and we don't want to do it twice.
        }
我的解决方案是修改
ProxyUtils
类。更改
ProxySelector.setDefault(ProxySelector)

    if(proxySelector != null){
        ProxySelector.setDefault(proxySelector);
    }
    else{
        proxySelector = ProxySelector.getDefault();
    }

然后我使用自己的
ProxyUtils.class
,通过WinRAR或7Z更新
soapui xxx.jar
(在
soapui\u HOME\bin\
中)中的
ProxyUtils.class
。现在我的SoapUI工作得很好。

嗨,我仍然面临问题,我在这里完全被阻塞了。请帮帮我。每次执行SOAP UI代码后都会发生浏览器异常。尝试创建驱动程序对象时发生浏览器异常,如:driver=new firefoxdriver();你注意到上面提到的链接了吗?你能把密码寄出去吗?