PhantomJS 无法访问自签名 HTTPS 页面 Codeception
PhantomJS cannot visit Self-signed HTTPS pages Codeception
我目前正在使用以下工具进行验收测试:
- 解码
- Selenium Webdriver
- PhantomJS (无头浏览器幽灵)
我的问题是访问自签名 (https) 页面时我的测试失败
我尝试过的:
phantomjs --webdriver=5555 --ignore-ssl-errors=true --ssl-protocol=any
- 在我的 acceptance.suit.yml
中添加功能 phantomjs.cli.args: ["--ignore-ssl-errors=true"]
到目前为止,这些选项并没有给我任何运气。
这是我的 acceptance.suit.yml
文件
class_name: AcceptanceTester
modules:
enabled:
- WebDriver
config:
WebDriver:
url: https://myproject.com
browser: firefox
capabilities:
unexpectedAlertBehaviour: 'accept'
env:
phantom:
modules:
enabled:
- WebDriver
config:
WebDriver:
url: https://myproject.com
http_proxy: 192.1.1.1
http_proxy_port: 3000
browser: phantomjs
capabilities:
phantomjs.cli.args: ["--ignore-ssl-errors=true"]
更新
出现这个错误[ModuleException] WebDriver: Current url is blank, no page was opened
我不知道为什么会出现这个错误,因为我已经指出了一个页面。这是我的测试示例
public function tryToTestThis(AcceptanceTester $I)
{
$I->wantTo('Test this function');
$I->amOnPage('/mypage/');
$I->see('This text');
}
最好能在 Codeception 中找到答案。谢谢
我们找出了这个问题的原因。因为我同时是运行Selenium
和phantomJS
。 (我从一些教程中得到了这个想法。)
我在做
java -jar selenium.jar
然后我这样做,因为它会导致错误 运行 phantomjs 在端口 4444(显然 selenium 正在使用它)我改用端口 5555。
phantomjs --webdriver=5555 --ignore-ssl-errors=true --ssl-protocol=any
注意:如果不涉及 https / ssl 自签名页面,一切正常。
我们认为 codeception
优先考虑端口 4444 并忽略我的 phantomjs 中指示的任何选项,即 --ignore-ssl-errors=true --ssl-protocol=any
这就是无法访问 https/self-signed 页面的原因。
所以基本上,修复只是 运行 phantomjs 没有硒。
phantomjs --webdriver=4444 --ignore-ssl-errors=true --ssl-protocol=any
谢谢
我目前正在使用以下工具进行验收测试:
- 解码
- Selenium Webdriver
- PhantomJS (无头浏览器幽灵)
我的问题是访问自签名 (https) 页面时我的测试失败
我尝试过的:
phantomjs --webdriver=5555 --ignore-ssl-errors=true --ssl-protocol=any
- 在我的 acceptance.suit.yml 中添加功能
phantomjs.cli.args: ["--ignore-ssl-errors=true"]
到目前为止,这些选项并没有给我任何运气。
这是我的 acceptance.suit.yml
文件
class_name: AcceptanceTester
modules:
enabled:
- WebDriver
config:
WebDriver:
url: https://myproject.com
browser: firefox
capabilities:
unexpectedAlertBehaviour: 'accept'
env:
phantom:
modules:
enabled:
- WebDriver
config:
WebDriver:
url: https://myproject.com
http_proxy: 192.1.1.1
http_proxy_port: 3000
browser: phantomjs
capabilities:
phantomjs.cli.args: ["--ignore-ssl-errors=true"]
更新
出现这个错误[ModuleException] WebDriver: Current url is blank, no page was opened
我不知道为什么会出现这个错误,因为我已经指出了一个页面。这是我的测试示例
public function tryToTestThis(AcceptanceTester $I)
{
$I->wantTo('Test this function');
$I->amOnPage('/mypage/');
$I->see('This text');
}
最好能在 Codeception 中找到答案。谢谢
我们找出了这个问题的原因。因为我同时是运行Selenium
和phantomJS
。 (我从一些教程中得到了这个想法。)
我在做
java -jar selenium.jar
然后我这样做,因为它会导致错误 运行 phantomjs 在端口 4444(显然 selenium 正在使用它)我改用端口 5555。
phantomjs --webdriver=5555 --ignore-ssl-errors=true --ssl-protocol=any
注意:如果不涉及 https / ssl 自签名页面,一切正常。
我们认为 codeception
优先考虑端口 4444 并忽略我的 phantomjs 中指示的任何选项,即 --ignore-ssl-errors=true --ssl-protocol=any
这就是无法访问 https/self-signed 页面的原因。
所以基本上,修复只是 运行 phantomjs 没有硒。
phantomjs --webdriver=4444 --ignore-ssl-errors=true --ssl-protocol=any
谢谢