2017-05-26 26 views
0

我們正在使用BrowserStack作爲項目。從Eclipse訪問URL時獲取org.apache.http.conn.HttpHostConnectException

我們正在測試的門戶網站已列入我們的IP列入白名單。

而且我們在代理後面訪問互聯網。

在運行下面的代碼片段:

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 
......... 

如何解決這個問題?

+0

您能否考慮更新我使用的Selenium版本?謝謝 – DebanjanB

+0

它看起來像你提到的代理細節沒有幫助。我注意到您已將Hub網址指定爲HTTPS。你有沒有嘗試切換到HTTP並檢查它是否工作?最後,您還可以嘗試按如下方式對Hub網址進行卷曲:curl -x -L https://hub.browserstack.com/wd/hub/status。試試HTTP和HTTPS。這將有助於確認您是否可以連接到BrowserStack的Selenium Hub。 –

回答

0

這裏是回答你的問題:

我din't發現任何顯著的問題在你的代碼塊這樣。但這裏有您需要照顧幾點:

  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 AutomationBrowserStack 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自動化」一起:

    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(); 
    
    } 
    
    } 
    

讓我知道如果這個回答你的問題。

0

在系統變量下設置您的代理_JAVA_OPTIONS,它將開始工作。我遇到了同樣的問題,並通過爲http和https提供_JAVA_OPTIONS代理來解決問題。