本地主机拒绝连接,从PayPal沙箱返回后出现此问题。

5

使用Selenium和Chrome WebDriver测试PayPal结账功能。

我已经尝试使用另一个域名、localhost和127.0.0.1。

值得注意的是,我正在Vagrant机器(homestead)中运行。

手动运行测试也可以正常工作。我认为问题在于环境变量PAYMENT_SANDBOX_PAYPAL_URL=http://localhost:8000/checkout/,但这很令人困惑,因为据我所知,使用WebDriver自动化测试时不应该有任何区别。

这是与Vagrant和我的主机有关的网络问题吗?我该如何诊断这个问题?

enter image description here

我知道这是一个非常特定的问题,适用于上述设置,但我认为像我一样的新手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。 - Ammadu
您能够使用 Telnet 连接到指定的 IP 地址和端口吗? - madz
你是否在Vagrant上运行了一个端口为8080的服务器?Selenium服务器是否也在Vagrant机器上运行? - Jeff
2个回答

0

您确定 PayPal Sandbox URL 应该是一个本地 URL,无法从框外访问吗?

请提供更多细节!您使用什么 Web 框架/服务器?您使用了哪些库来使 PayPal 工作。

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


0

我猜测当Chrome通过webdriver启动时,它会在不同的配置文件下运行(无法加载时手动启动除外)。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");

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接