本地主机拒绝连接,从贝宝沙箱返回后

Posted

技术标签:

【中文标题】本地主机拒绝连接,从贝宝沙箱返回后【英文标题】:localhost refused to connect, after returning from paypal sandbox 【发布时间】:2016-12-21 09:30:26 【问题描述】:

使用 Selenium 和 chrome 网络驱动程序使用 PayPal 结帐进行测试。

我尝试过使用另一个域名,localhost 和 127.0.0.1

请注意我在 Vagrant 机器(宅基地)内运行

测试也可以手动运行。 我认为这个问题是一个环境变量 PAYMENT_SANDBOX_PAYPAL_URL=http://localhost:8000/checkout/,但是据我了解,这令人困惑,使用 webdriver 运行自动化测试应该没有区别。

这是 vagrant 和我的主机的网络问题吗?我该如何诊断?

我知道这是对上述设置的一个非常具体的问题,但是我认为像我这样的其他新 selenium 用户会发现它很有用,尤其是在使用 codeception 和 laravel 时。

也许这与将 ip 列入白名单有关? 这是当前命令。

java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalonjar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver" -Dwebdriver.chrome.options="--whitelisted-ips=173.0.82.77,127.0.0.1"

【问题讨论】:

尝试绑定到 0.0.0.0:8000 你能telnet ip和port吗 您是否在 vagrant 上运行在 8080 端口上运行的服务器? selenium 服务器是否也在 vagrant 机器上运行? 【参考方案1】:

我猜想当手动启动(当它能够加载时)和通过 webdriver 启动时,chrome 正在以不同的配置文件运行。 WebDriver 在不同的配置文件中启动浏览器,该配置文件可能与默认配置文件非常不同,默认配置文件可能包括一些与代理/网络相关的设置。

来自https://sites.google.com/a/chromium.org/chromedriver/capabilities

默认情况下,ChromeDriver 将为每个会话创建一个新的临时配置文件。有时您可能想要设置特殊偏好或完全使用自定义配置文件。如果是前者,您可以使用“chrome.prefs”功能(稍后将介绍)来指定将在 Chrome 启动后应用的首选项。如果是后者,您可以使用 user-data-dir Chrome 命令行开关来告诉 Chrome 使用哪个配置文件:

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");

您可以通过运行 Chrome(在命令行或通过 ChromeDriver)并将 user-data-dir 开关设置为某个新目录来创建自己的自定义配置文件。如果该路径不存在,Chrome 将在指定位置创建一个新配置文件。然后,您可以根据需要修改配置文件设置,ChromeDriver 将来可以使用该配置文件。在浏览器中打开 chrome://version 以查看 Chrome 正在使用的配置文件。

【讨论】:

【参考方案2】:

您确定 PayPal 沙盒 URL 应该是本地 URL,不能从您的框外访问吗?

请提供更多细节!你使用什么网络框架/网络服务器?您使用哪些库来让 PayPal 正常工作。

我认为,如果在运行 Selenium 时行为不同,那是与 WebDriver 设置完全相关的问题,或者它与 Vagrant 一起工作。

【讨论】:

以上是关于本地主机拒绝连接,从贝宝沙箱返回后的主要内容,如果未能解决你的问题,请参考以下文章

如何从贝宝获得成功或失败响应?

本地主机拒绝使用 laravel 帆(Docker)连接

运行“远程调试器”时出错:无法打开调试器端口(本地主机:5005):java.net.ConnectException“连接被拒绝(连接被拒绝)”

本地主机服务器拒绝连接

蒙特雷让本地主机连接错误

本地主机拒绝来自应用程序的连接