51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3252|回复: 1
打印 上一主题 下一主题

为什么总是抱错Caused by: java.net.SocketException: Connection reset

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2014-11-30 12:59:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
背景:我编写的一段小代码Java Selenium WebDriver,完成[打开页面]-〉[用户登入]-〉[用户登出]的简单工作。

问题:程序运行很不稳定。表现为同样的代码,运行若干次,仅有一两次等成功。其余几乎报同样的错误:
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died.
Build info: version: '2.39.0', revision: 'ff23eac', time: '2013-12-16 16:12:12'
System info: host: 'Albert-HP', ip: '192.168.0.14', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_45'
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:268)
at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:89)
at local.webdriver.WebDriverDemo.main(WebDriverDemo.java:24)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:160)
at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:84)
at org.apache.http.impl.io.AbstractSessionInputBuffer.read(AbstractSessionInputBuffer.java:206)
at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:178)
at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137)
at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:150)
at org.apache.http.util.EntityUtils.toByteArray(EntityUtils.java:136)
at org.openqa.selenium.remote.HttpCommandExecutor$EntityWithEncoding.<init>(HttpCommandExecutor.java:407)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:303)
at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:165)
at org.openqa.selenium.firefox.FirefoxDriver$LazyCommandExecutor.execute(FirefoxDriver.java:366)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:527)
... 3 more

分析:
一开始认为可能是WebDriver和Firefox的版本搭配有问题,就尝试将配置从WebDriver 2.44.0+Firefox 33.1.1+JDK 1.6.0_45,修改为WebDriver 2.39.0+Firefox 25.0.1+JDK 1.6.0_45。但遗憾的是,情况依旧。
从错误信息分析,理解是socket连接被复位,导致Firefox到WebDriver无法继续通信。但不知道这个问题改如何确定和解决,希望有相关经验的同仁指点迷津。

代码:
package local.webdriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
public class WebDriverDemo {
public static void main(String[] args) throws InterruptedException {
  
  WebDriver driver=new FirefoxDriver();
  
  driver.get("http://www.claimsecure.com/en-CA/products/OnlineServices.aspx");
  
  driver.manage().window().maximize();
  
  // type in Username
  Thread.sleep(5000);
  driver.findElement(By.name("pin")).sendKeys("username");  //在此暂时屏蔽真实用户名
  
  // type in password
  driver.findElement(By.name("pwd")).sendKeys("password"); //在此暂时屏蔽真实口令
  
  // click 'Login' button
  driver.findElement(By.id("ctl00_cphMainContent_ucOSLoginBox_SignInButton")).click();
  
  // click 'Log off' button
  driver.findElement(By.id("ctl00_hlnkLogOff")).click();
  
  driver.quit();
}
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2014-12-25 21:42:50 | 只看该作者
WebDriver driver=new FirefoxDriver();

实例化driver不对
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-8 17:00 , Processed in 0.061917 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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