51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3504|回复: 9
打印 上一主题 下一主题

selenium报错,求大神指教

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-6-2 16:00:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的selenium封装了个login方法,在执行第一自动化用例后用了close方法。再执行第二个自动化用例时再次调用login方法打开时报了下面的错误,求各位大神帮忙看看是什么问题,小弟求教了。
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died.
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 16:57:40'
System info: host: 'admin-PC', ip: '192.10.11.102', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_73'
Driver info: driver.version: RemoteWebDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, handlesAlerts=true, databaseEnabled=true, version=46.0.1, platform=WINDOWS, nativeEvents=false, acceptSslCerts=true, webStorageEnabled=true, locationContextEnabled=true, browserName=firefox, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: abb6772c-a0d9-4426-abe0-00dd8e2d118b
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:665)
        at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:316)
        at seleniumtest.TestBase.login(TestBase.java:38)
        at infoplat.ResourceManagement.Edit1(ResourceManagement.java:75)
        at run.Open.main(Open.java:17)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:7056 [/127.0.0.1] failed: Connection refused: connect
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:151)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
        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:162)
        at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:90)
        at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)
        at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:160)
        at org.openqa.selenium.firefox.FirefoxDriver$LazyCommandExecutor.execute(FirefoxDriver.java:380)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:644)
        ... 4 more
Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
        at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
        at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
        at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.SocksSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:74)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:134)
        ... 19 more
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2015-9-5 13:22
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2016-6-3 09:53:02 | 只看该作者
    " Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:7056 [/127.0.0.1] failed: Connection refused: connect "
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-4-15 08:56
  • 签到天数: 1179 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2016-6-3 10:12:05 | 只看该作者
    1.从报错信息来看,第一个用例打开的浏览器直接Close()。再执行第二个用例的时候有没有再次打开浏览器?
    2. Close()---Close the current window, quitting the browser if it's the last window currently open;
    3.如果想不关闭浏览器,可以使用testng或者Junit中的注解,把打开浏览器的操作放在@beforeclass或者@beforemethod中,这样只打开一次浏览器执行完所有的用例后再关闭浏览器就可以。

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2016-6-3 10:41:11 | 只看该作者
    jjnha 发表于 2016-6-3 09:53
    " Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:7056 [/127.0.0.1] f ...

    这个错误我看到了,可是网上查了下都是说版本不兼容。没有其他解释。我感觉不像版本不兼容。肯定是哪里错了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2016-6-3 10:41:22 | 只看该作者
    jjnha 发表于 2016-6-3 09:53
    " Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:7056 [/127.0.0.1] f ...

    这个错误我看到了,可是网上查了下都是说版本不兼容。没有其他解释。我感觉不像版本不兼容。肯定是哪里错了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2016-6-3 10:42:59 | 只看该作者
    清晨一缕阳光 发表于 2016-6-3 10:12
    1.从报错信息来看,第一个用例打开的浏览器直接Close()。再执行第二个用例的时候有没有再次打开浏览器?
    2 ...

    因为我每个用例最后都加了close()所以会报错,如果只在最后一个方法后面加close就可以全部执行。但是我是想每个方法都能close()这个怎么搞?求指教。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-4-15 08:56
  • 签到天数: 1179 天

    连续签到: 1 天

    [LV.10]测试总司令

    7#
    发表于 2016-6-3 10:47:03 | 只看该作者
    karena1314ait 发表于 2016-6-3 10:42
    因为我每个用例最后都加了close()所以会报错,如果只在最后一个方法后面加close就可以全部执行。但是我是 ...

    第一个用例Close()后,第二个用例有没有再打开?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2016-6-3 11:16:34 | 只看该作者
    清晨一缕阳光 发表于 2016-6-3 10:47
    第一个用例Close()后,第二个用例有没有再打开?

    有的,我写的login()方法,每个用例开始都会调login()方法的
    public abstract class TestBase {
    //        private ProfilesIni allProfiles = new ProfilesIni();
    //        private FirefoxProfile profile = allProfiles.getProfile("default");
            public WebDriver test=new ChromeDriver();
            private Actions action = new Actions(test);       
           
            /**
             * 登录系统
             */
            public void login(){
                    System.setProperty("webdriver.chrome.bin","C:\\Users\\admin\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe");
                    String url="http://192.10.22.239:8080/infoplat/login";//公司内测试地址
    //                String url="http://10.250.190.201:8080/infoplat/login";//公司内测试地址=
                    test.navigate().to(url);
                    test.findElement(By.id("username")).sendKeys("autotest1");
                    test.findElement(By.id("password")).sendKeys("000000");
                    test.findElement(By.id("validateCode")).sendKeys("1");
                    test.findElement(By.id("loginBtn")).click();
                    }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2016-6-3 15:04:18 | 只看该作者
    每一个新的session开始的时候,会自动启动浏览器,你这里一个case执行结束后,把唯一的一个浏览器窗口也关掉了,这样子浏览器自己也会关闭,第二个case自然找不到浏览器了,而且selenium的API也没有提供打开新浏览器的command。
    Close用来关闭当前的浏览器窗口,但是如果你当前只有一个window,是不应该关闭的,这个时候不如直接用Quite退出整个session。

    我的建议是,改变你的代码的结构
    在case setup里面new ChromeDriver
    在case teardown里面 Quite

    这样子每一个case都会重新启动一个session,我不知道你把new ChromeDriver放在构造函数里面用意何在,为了重用session节省时间?new一个新session的时间相对于执行case的时间,应该是可以忽略的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-8-8 10:50
  • 签到天数: 19 天

    连续签到: 1 天

    [LV.4]测试营长

    10#
    发表于 2016-6-22 16:44:29 | 只看该作者
    请问这个问题你解决了么?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-28 21:59 , Processed in 0.073374 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表