我在没有问题的情况下对PhantomJS进行了Behat测试。我是这样开始的:
bin/phantomjs --webdriver=8643
它有效,但我想运行Chrome无头而不是PhantomJS。为此,我尝试了这个:
google-chrome --headless --remote-debugging-port=8643
但Behat似乎没有在这个Chrome上开始任何事情。我找到了很多关于Chrome和Selenium的文档,但是我想知道它是否可以运行它,就像我使用Selenium驱动程序运行PhantomJS,但是没有Selenium服务器?
default:
suites:
default:
contexts:
- FeatureContext
- Behat\MinkExtension\Context\MinkContext
extensions:
Behat\MinkExtension:
base_url: 'http://myurl.com/'
sessions:
default:
selenium2:
wd_host: 'http://localhost:8643'
答案 0 :(得分:1)
要在Google Chrome上运行测试,您需要chromedriver
然后你可以使用chromedriver正在收听的端口(默认为9515)而不是PhantomJs 8643.你不再需要Selenium了。
最后,您将--headless
标记传递给chrome,这样您就不需要xfvb了。
配置示例:
# behat.yml
default:
extensions:
# ...
Behat\MinkExtension:
base_url: 'http://myurl.com/'
sessions:
default:
selenium2:
browser: chrome
# Note: I'm not totally sure you still need the /wd/hub path
wd_host: http://localhost:9515/wd/hub
capabilities:
chrome:
switches:
- "--headless"
更多文档:https://developers.google.com/web/updates/2017/04/headless-chrome
答案 1 :(得分:0)
这在Ubuntu 16.04 LTS上对我有用
chromedriver &
上启动chromedriver behat.yml
更新为default:
extensions:
Behat\MinkExtension:
sessions:
default_session:
selenium2:
browser: chrome
wd_host: http://127.0.0.1:9515
capabilities:
chrome:
switches:
- "--headless"
- "--disable-gpu"