Java 从Eclipse访问URL时获取org.apache.http.conn.HttpHostConnectException
我们正在为一个项目使用BrowserStack 我们正在测试的门户是我们IP的白名单 我们用代理上网 运行以下代码段时:Java 从Eclipse访问URL时获取org.apache.http.conn.HttpHostConnectException,java,eclipse,apache,selenium,browserstack,Java,Eclipse,Apache,Selenium,Browserstack,我们正在为一个项目使用BrowserStack 我们正在测试的门户是我们IP的白名单 我们用代理上网 运行以下代码段时: public class DemoClass { public static final String USERNAME = "<Username>"; public static final String AUTOMATE_KEY = "<Key>"; public static final String URL = "https://" + US
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);
....
公共类DemoClass{
公共静态最终字符串USERNAME=“”;
public static final String_KEY=“”;
公共静态最终字符串URL=“https://”+USERNAME+:“+automation\u KEY
+“@hub cloud.browserstack.com/wd/hub”;
公共静态void main(字符串[]args)引发异常{
字符串baseUrl;
DesiredCapabilities=新DesiredCapabilities();
caps.setCapability(“浏览器”、“IE”);
caps.setCapability(“浏览器版本”、“7.0”);
caps.setCapability(“os”、“Windows”);
caps.setCapability(“os_版本”、“XP”);
setCapability(“browserstack.debug”、“true”);
caps.setCapability(“browserstack.local”、“true”);
System.getProperties().put(“http.proxyHost”,”);
System.getProperties().put(“http.proxyPort”,”);
WebDriver-driver=新的RemoteWebDriver(新的URL,大写);
....
我们得到以下错误信息:
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
.........
线程“main”中出现异常
org.openqa.selenium.remote.UnreachableBrowserException:无法启动
新会话。可能的原因是远程服务器的地址无效或
浏览器启动失败。
生成信息:版本:“3.4.0”,版本:“未知”,时间:“未知”
系统信息:主机:“”,ip:“”,操作系统名称:'Windows
7',os.arch:'x86',os.version:'6.1',java.version:'1.8.0131'
驱动程序信息:Driver.version:RemoteWebDriver
在
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:658)
位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250)
位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236)
位于org.openqa.selenium.remote.RemoteWebDriver(RemoteWebDriver.java:137)
位于org.openqa.selenium.remote.RemoteWebDriver(RemoteWebDriver.java:174)
在demopackage.DemoClass.main(DemoClass.java:31)处
原因:org.apache.http.conn.HttpHostConnectException:连接到集线器-
cloud.browserstack.com:443[hub cloud.browserstack.com/5.255.92.202]失败:
连接被拒绝:连接
.........
如何解决此问题?以下是您问题的答案: 我在您的代码块中找不到任何重大问题。但以下是您需要注意的几点:
WebDriver-driver=new-RemoteWebDriver(新URL,caps);
时,请记住导入java.net.URL;
我们正在为项目使用BrowserStack
,但您没有提到您是在使用BrowserStack自动化
还是BrowserStack运行本地测试
BrowserStack Automation
,则需要从代码中删除caps.setCapability(“BrowserStack.local”、“true”);
BrowserStack
,则需要在代码中提到caps.setCapability(“BrowserStack.local”,“true”);
BrowserStack Automation
,下面是您自己的代码块以及一些在“BrowserStack Automation”上成功执行的简单调整:
SeleniumGrid包装;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.remote.DesiredCapabilities;
导入org.openqa.selenium.remote.RemoteWebDriver;
导入java.net.MalformedURLException;
导入java.net.URL;
公共类Q44196893_IE_浏览器堆栈{
公共静态最终字符串USERNAME=“”;
public static final String_KEY=“”;
公共静态最终字符串URL=“https://”+USERNAME+:“+automation_KEY+”@hub cloud.browserstack.com/wd/hub”;
publicstaticvoidmain(字符串[]args)引发畸形的DurLexException{
字符串baseUrl;
DesiredCapabilities=新DesiredCapabilities();
caps.setCapability(“浏览器”、“IE”);
caps.setCapability(“浏览器版本”、“7.0”);
caps.setCapability(“os”、“Windows”);
caps.setCapability(“os_版本”、“XP”);
setCapability(“browserstack.debug”、“true”);
System.getProperties().put(“http.proxyHost”,”);
System.getProperties().put(“http.proxyPort”,”);
WebDriver-driver=新的RemoteWebDriver(新的URL,大写);
驱动程序。获取(“http://google.com/");
System.out.println(“标题是:“+driver.getTitle());
driver.quit();
}
}
<>请让我知道你的问题。< /P> < p>在系统变量下在代码> > javaAyOpths>代码中设置你的代理,它将开始工作。我遇到了同样的问题,它通过为HTTP和HTTPS提供代理来解决代码< > JavaAyOpths>代码>。看起来您提到的代理详细信息没有帮助。我注意到您已将中心URL指定为HTTPS。您是否尝试切换到HTTP并检查其是否有效?最后,您还可以尝试对中心URL执行如下卷曲:cURL-x:-L。尝试HTTP和HTTPS。这将有助于确认您是否能够连接到BrowserStack的Selenium中心。
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();
}
}