java.net.ConnectException:在Windows 10上使用Selenium 3.11.0与IEDriverServer和IE 11连接到localhost错误失败

时间:2018-03-14 16:02:59

标签: selenium selenium-webdriver internet-explorer-11 selenium-iedriver iedriverserver

我对硒很新,并试图在我的笔记本电脑中设置硒开始。我无法从我的简单代码中调用IE。详情如下。你能帮我理解问题所在吗

IE版:IE 11, IE驱动程序:64位, 操作系统:Windows 10 64位, Selenium版本:3.11

错误:



Started InternetExplorerDriver server (64-bit)
3.9.0.0
Listening on port 29313
Only local connections are allowed
Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:29313
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:33:08.638Z'
System info: host: 'DESKTOP-B1D1PSJ', ip: '192.168.79.96', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_161'
Driver info: driver.version: InternetExplorerDriver
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:92)
	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 testing.Tryselenium.main(Tryselenium.java:31)
Caused by: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:29313
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:240)
	at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:158)
	at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:256)
	at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:134)
	at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:113)
	at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
	at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
	at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
	at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
	at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
	at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
	at okhttp3.RealCall.execute(RealCall.java:77)
	at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:101)
	at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:101)
	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)
	... 6 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 okhttp3.internal.platform.Platform.connectSocket(Platform.java:125)
	at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:238)
&#13;
&#13;
&#13;

代码:

&#13;
&#13;
mport java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class Tryselenium {
	  public static void main(String[] args) { 
	    // TODO Auto-generated method stub

		  WebDriver web;
		  /*System.setProperty("webdriver.chrome.driver","C:\\Users\\Divakar\\Documents\\General\\Learnings\\Selenium\\Others\\Set Up files\\Browser Drivers\\" + "chromedriver_x32.exe");
		  ChromeOptions chromeOptions = new ChromeOptions();
			chromeOptions.setExperimentalOption("excludeSwitches",Arrays.asList("test-type"));
			web = new ChromeDriver(chromeOptions);
			web.manage().window().maximize();
			web.manage().timeouts().implicitlyWait(50,TimeUnit.SECONDS);*/
			
		  System.setProperty("webdriver.ie.driver","E:\\General\\Learnings\\Selenium\\Others\\Set Up files\\Browser Drivers\\" + "IEDriverServer.exe");
			DesiredCapabilities capab = DesiredCapabilities.internetExplorer();
	        capab.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
	        web = new InternetExplorerDriver();
	        web.manage().window().maximize();
	        web.manage().timeouts().implicitlyWait(50,TimeUnit.SECONDS);

		    /*FirefoxDriver web = new FirefoxDriver();			
	        web = new FirefoxDriver();	
	        web.manage().window().maximize();
	        web.manage().timeouts().implicitlyWait(50,TimeUnit.SECONDS);*/
	        
		web.get("http://www.icicibank.com/");
		web.findElement(By.xpath("/html/body/div[1]/div[1]/div[1]/div/a[1]")).click();
		web.findElement(By.xpath("/html/body/div[1]/div[1]/div[1]/div/div[3]/div/ul[1]/li[1]/a")).click();
	    web.findElement(By.xpath("/html/body/div[1]/div[2]/div[2]/div/div[1]/div/div[3]/a")).click();
	    web.findElement(By.name("AuthenticationFG.USER_PRINCIPAL")).sendKeys("507133118");
	    web.findElement(By.name("AuthenticationFG.ACCESS_CODE")).sendKeys("Soft2008");
	    web.findElement(By.name("Action.VALIDATE_CREDENTIALS")).click();
	    web.findElement(By.id("ContentLink1")).click();
	    

	    WebElement accttable =  web.findElement(By.xpath("/html/body/form/div/div[3]/div[1]/div[4]/div[2]/div/div/div[5]/div/div/div/div/div/div/div"));
		List<WebElement> all_rows =  accttable.findElements(By.tagName("tr"));
	    
		int j = 0;
		for (int i = 0; i < all_rows.size(); i++) {
	    	List<WebElement> rowAllCells = all_rows.get(i).findElements(By.tagName("td"));			
			if(rowAllCells.size()>1)
			{

				String acctno=rowAllCells.get(2).getText();
				if(rowAllCells.get(2).getText().trim().equalsIgnoreCase("602605049934"))
				{
					web.findElement(By.id("AccountSummaryFG.SELECTED_INDEX")).click(); ///html/body/form/div/div[3]/div[1]/div[4]/div[2]/div/div/div[5]/div/div/div/div/div/div/div/table/tbody/tr[4]/td[1]/input
					web.findElement(By.id("HREF_actNicNameOutput[" + j + "]")).click();
					web.findElement(By.id("backBtn")).click();
					web.findElement(By.id("VIEW_MINI_STATEMENT")).click();
					web.findElement(By.id("HREF_Logout")).click();
					web.close();
				}
				else 				j = j + 1;
			}
		}
	    
	    		
	    
	  }
	}
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:2)

错误说明了一切:

3.9.0.0
Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:29313
Build info: version: '3.11.0', revision: 'e59cfb3', time: '2018-03-11T20:33:08.638Z'
System info: host: 'DESKTOP-B1D1PSJ', ip: '192.168.79.96', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_161'
Driver info: driver.version: InternetExplorerDriver

从您的错误堆栈跟踪中可以清楚地看到,新的会话未启动,并且 driver.version 也未被识别。

您的主要问题是您使用的二进制文件之间的版本兼容性,如下所示:

  • 您正在使用 Selenium Client v3.11.0
  • 您正在使用 IEDriverServer v3.9.0.0
  • 您正在使用 InternetExplorer v11.0 (根据您的问题)

因此, Selenium Client v3.11.0 IEDriverServer v3.9.0.0 之间明显不匹配。

解决方案

  • IEDriverServer 升级到v3.11.1
  • 通过 IDE 清理您的项目工作区仅使用所需的依赖项重建项目
  • 使用CCleaner工具清除执行测试套件之前和之后的所有操作系统杂务。
  • 如果您的基本 Web浏览器基础版本太旧,请通过Revo Uninstaller将其卸载并安装最近的GA和已发布的 Web浏览器版本。< / LI>
  • 执行@Test

其他注意事项

  • 您使用的是 INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true 标志,该标志针对best practice。不要这样做。

答案 1 :(得分:0)

此答案针对Edge浏览器进行了更新。如果您使用的是Edge浏览器并且遇到相同的问题。然后按照以下步骤操作:

  1. 从以下位置下载最新的IEDriverServer:https://selenium.dev/downloads/

  2. 如下更新您的代码:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;

public class SL001_OpenWebpage_Edge 
    {
        public static void main(String[] args) 
        {       
            System.setProperty("webdriver.ie.driver", "\\location\\IEDriverServer.exe");

            WebDriver driver=new EdgeDriver();

            driver.get("https://www.hul.co.in/");

            driver.findElement(By.id("tcm:1255-50553-4")).click();

            //driver.manage().window().maximize();

        }
    }

答案 2 :(得分:0)

在我们的案例中,该问题不是特定于詹金斯,而是 Chrome驱动程序崩溃,在我们的自动化测试运行的虚拟机下。

如果您登录到VM计算机并已将工作空间复制到其中,并且在终端下运行与Jenkins相同的maven命令,则您应该能够观察测试的运行,这可能是您一种方式找出并解决问题。

enter image description here

enter image description here

enter image description here

答案 3 :(得分:0)

即使使用相同的驱动程序和客户端版本,我也会发生这种情况。

Started InternetExplorerDriver server (32-bit)
3.141.59.0
...
java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:XXXX
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'HOST_NAME', ip: 'XX.XXX.XX.XX', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_251'
Driver info: driver.version: RemoteWebDriver

我最终在这里找到了完美的搭配

http://selenium-release.storage.googleapis.com/index.html

,但是IE中的“安全设置”不同,并且在新计算机上不正确。使每个区域在

中具有相同的启用保护模式框状态(选中或取消选中每个框)

Internet Options -> Security

固定100%。使驱动程序启动并导航到页面,但前两个步骤修复了错误。