【问题标题】:Getting org.apache.http.conn.HttpHostConnectException while accessing a URL from Eclipse从 Eclipse 访问 URL 时获取 org.apache.http.conn.HttpHostConnectException
【发布时间】:2017-05-26 08:23:42
【问题描述】:

我们正在为一个项目使用 BrowserStack。

我们正在测试的门户已针对我们的 IP 列入白名单。

我们通过代理访问互联网。

同时运行下面的代码sn-p:

public class DemoClass {

public static final String USERNAME = "<Username>";
public static final String AUTOMATE_KEY = "<Key>";
public static final String URL = "https://" + USERNAME + ":" + AUTOMATE_KEY 
+ "@hub-cloud.browserstack.com/wd/hub";

public static void main(String[] args) throws Exception {
 String baseUrl;
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("browser", "IE");
caps.setCapability("browser_version", "7.0");
caps.setCapability("os", "Windows");
caps.setCapability("os_version", "XP");
caps.setCapability("browserstack.debug", "true");
caps.setCapability("browserstack.local", "true");
System.getProperties().put("http.proxyHost", "<Proxy URL>");
System.getProperties().put("http.proxyPort", "<Proxy Port>");
WebDriver driver = new RemoteWebDriver(new URL(URL), caps);
....

我们遇到以下错误:

Exception in thread "main" 
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: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: '<HOSTNAME>', ip: '<HOST IP>', os.name: 'Windows 
7', os.arch: 'x86', os.version: '6.1', java.version: '1.8.0_131'
Driver info: driver.version: RemoteWebDriver
at 
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:658)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:137)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:174)
at demopackage.DemoClass.main(DemoClass.java:31)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to hub-
cloud.browserstack.com:443 [hub-cloud.browserstack.com/5.255.92.202] failed: 
Connection refused: connect
.........

如何解决这个问题?

【问题讨论】:

  • 您能否考虑更新一下您正在使用的 Selenium 版本?谢谢
  • 您提到的代理详细信息似乎没有帮助。我注意到您已将 Hub URL 指定为 HTTPS。您是否尝试过切换到 HTTP 并检查它是否有效?最后,您还可以尝试对 Hub URL 执行 cURL,如下所示:curl -x: -L hub.browserstack.com/wd/hub/status。尝试 HTTP 和 HTTPS。这将有助于确认您是否能够连接到 BrowserStack 的 Selenium Hub。

标签: java eclipse apache selenium browserstack


【解决方案1】:

这是您问题的答案:

我在您的代码块中没有发现任何重大问题。但这里有几点你需要注意:

  1. 当你做WebDriver driver = new RemoteWebDriver(new URL(URL), caps);时记得import java.net.URL;
  2. 我观察到您将基本异常处理为public static void main(String[] args) throws Exception 而您可能认为public static void main(String[] args) throws MalformedURLException 是精确的
  3. 你提到了We are using BrowserStack for a project,但你没有提到你使用的是BrowserStack Automation还是BrowserStack Running local tests
  4. 假设您使用的是 BrowserStack Automation,您需要从代码中删除 caps.setCapability("browserstack.local", "true");
  5. 如果您使用的是BrowserStack Running local tests,则需要在代码中提及caps.setCapability("browserstack.local", "true");
  6. 假设您使用的是BrowserStack Automation,这里是您自己的代码块以及一些在“BrowserStack Automation”上成功执行的简单调整:

    package SeleniumGrid;
    
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import org.openqa.selenium.remote.RemoteWebDriver;
    
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class Q44196893_IE_BrowserStack {
    
    public static final String USERNAME = "<Username>";
    public static final String AUTOMATE_KEY = "<Key>";
    public static final String URL = "https://" + USERNAME + ":" + AUTOMATE_KEY + "@hub-cloud.browserstack.com/wd/hub";
    
    
    public static void main(String[] args) throws MalformedURLException {
    
    
         String baseUrl;
         DesiredCapabilities caps = new DesiredCapabilities();
         caps.setCapability("browser", "IE");
         caps.setCapability("browser_version", "7.0");
         caps.setCapability("os", "Windows");
         caps.setCapability("os_version", "XP");
         caps.setCapability("browserstack.debug", "true");
         System.getProperties().put("http.proxyHost", "<Proxy URL>");
         System.getProperties().put("http.proxyPort", "<Proxy Port>");
         WebDriver driver = new RemoteWebDriver(new URL(URL), caps);
         driver.get("http://google.com/");
         System.out.println("Title is : "+driver.getTitle());
         driver.quit();
    
    }
    
    }
    

如果这能回答您的问题,请告诉我。

【讨论】:

    【解决方案2】:

    在系统变量下的_JAVA_OPTIONS 中设置您的代理,它将开始工作。我遇到了同样的问题,通过为_JAVA_OPTIONS 提供 http 和 https 代理来解决它。

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 2020-03-24
      • 1970-01-01
      相关资源
      最近更新 更多