首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium UnreachableBrowserException -- SoapUI Groovy TestStep中的“无法启动新会话”

Selenium UnreachableBrowserException -- SoapUI Groovy TestStep中的“无法启动新会话”
EN

Stack Overflow用户
提问于 2015-05-22 12:42:51
回答 8查看 106.9K关注 0票数 13

我在SoapUI x32上使用了Win7 Pro 5.1.2,并尝试连接到Groovy TestStep中的Selenium。

为此,我在selenium-standalone-server.jar文件夹中添加了$SOAP_HOME$\bin\ext v2.45.0。

我的Groovy TestStep代码:

代码语言:javascript
复制
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver

System.setProperty('webdriver.chrome.driver', 'C:\\\\Windows\\system32\\chromedriver.exe')
log.info(System.getProperty('webdriver.chrome.driver')) //got 'C:\\Windows\system32\chromedriver.exe'

WebDriver driver = new ChromeDriver() // this line causes error

driver.get('http://google.com')
driver.quit()

当我尝试运行这个步骤时,SoapUI返回消息:

代码语言:javascript
复制
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.45.0', 
    revision: '5017cb8', 
    time: '2015-02-26 23:59:50' 
System info: 
    host: 'SmithPC', 
    ip: '10.0.2.15', 
    os.name: 'Windows 7', 
    os.arch: 'x86', 
    os.version: '6.1', 
    java.version: '1.8.0_45' 
Driver info: 
    driver.version: ChromeDriver 
error at line: 7

在将相同的selenium-standalone-server.jar包添加到空java项目后,我尝试通过Netbeans运行这段代码。和它已经毫无问题地完成了!

这是soapUI的错误日志:

代码语言:javascript
复制
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.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'SmithPC', ip: '10.0.2.15', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_45'
Driver info: driver.version: ChromeDriver
    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.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:139)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:171)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:160)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:117)
    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:422)
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:186)
    at Script3.run(Script3.groovy:7)
    at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:92)
    at com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SourceFile:79)
    at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:138)
    at com.eviware.soapui.impl.wsdl.panels.teststeps.GroovyScriptStepDesktopPanel$RunAction$1.run(GroovyScriptStepDesktopPanel.java:250)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
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:77)
    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:71)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
    at org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient.java:126)
    at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:72)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:133)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:66)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:572)
    ... 23 more

我还尝试使用FirefoxDriver()而不是ChromeDriver(),并得到了同样的错误。

EN

回答 8

Stack Overflow用户

发布于 2015-09-13 03:39:49

我也遇到了同样的错误,即:

org.openqa.selenium.remote.UnreachableBrowserException:无法启动新会话。可能的原因是远程服务器或浏览器启动失败的地址无效。

但是chromedriver.exe开始的很好。我可以从任务经理那里看到。

我的环境如下,

  • windows 7,终极64位系统
  • selenium-server-standalone-2.47.1
  • 显色剂2.19
  • 谷歌铬: 45.0

在谷歌结果中提出了多次尝试之后,我的最终解决方案是将127.0.0.1 localhost添加到C:\Windows\System32\drivers\etc\hosts中。

希望能帮助你!

票数 13
EN

Stack Overflow用户

发布于 2015-09-08 12:20:46

从seleniumhq.org下载最新的驱动程序(chrome或IE),并使用以下代码

代码语言:javascript
复制
    System.setProperty("webdriver.chrome.driver","<YourPath>chromedriver.exe");
    WebDriver driver=new ChromeDriver();
    driver.get("http://www.yahoo.com");

这对我有用。

票数 6
EN

Stack Overflow用户

发布于 2016-09-14 00:18:26

在selenium中,此错误消息:

org.openqa.selenium.remote.UnreachableBrowserException:无法启动新会话。可能的原因是远程服务器或浏览器启动失败的地址无效。

可能有很多原因。但是,在本例中查看堆栈跟踪是由于一个NullPointerException

代码语言:javascript
复制
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:77)
    at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:124)

问题是在SOAPUI中使用selenium。SOAPUI似乎将默认代理设置为null (ProxySelector.setDefault(null))。因此,当selenium获得默认代理(调用其上的方法)时,将抛出一个NullPointerException

问题是在SOAPUI中执行代码,所以在SOAPUI将其设置为null之前无法获得默认代理.然后,在您的Groovy testStep中可以找到一个可能的解决方法,尝试在执行ProxySelector之前将其设置为默认设置:

代码语言:javascript
复制
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import java.net.Proxy
import java.net.ProxySelector

def selectDirectProxy(URI uri) {
  final List<Proxy> proxy = new ArrayList<Proxy>()
  proxy.add(Proxy.NO_PROXY)
  return proxy
}

// create a ProxySelector
ProxySelector proxySelector = [ select : { uri->selectDirectProxy(uri) } ] as ProxySelector
// set as default to avoid null pointer
ProxySelector.setDefault(proxySelector);

// now it's safe to invoke WebDriver...
System.setProperty('webdriver.chrome.driver', 'C:\\\\Windows\\system32\\chromedriver.exe')
log.info(System.getProperty('webdriver.chrome.driver')) //got 'C:\\Windows\system32\chromedriver.exe'

WebDriver driver = new ChromeDriver()

在本例中,我以groovy的方式扩展了ProxySelector抽象类,以设置至少一个直接代理。如果有必要的话,也可以使用Proxy类来配置necessary并在列表中设置它,但是使用这段代码,我试图避免使用SOAPUI ProxySelector.setDefault(null)

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

https://stackoverflow.com/questions/30397043

复制
相关文章

相似问题

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