问题描述
由于没有官方的故障排除信息,对于任何不了解使用类似系统进行安装的人来说,这都是艰巨的努力。
我想解决专门针对 OSX Catalina 和 Selenium服务器/ Chromedriver配置的问题,并将它们全部放在一个地方。我还将在结尾处附上我的问题。
在我看来,大多数问题都围绕着:
- Selenium,Codeception或Chromedriver安装不正确
- 以上版本(或PHP?)的冲突版本
- Selenium服务器运行的端口问题
- 编码错误:错别字,旧代码等
- 缺乏对终端/ java命令的了解
- 路径问题
- 我不知道的任何问题
我将以我在此过程中学到的东西开始,如果可以的话,请帮助填补空白或纠正我在下面陈述的内容。
安装错误
硒
brew install selenium-server-standalone
Chromedriver
brew tap homebrew/cask
brew cask install chromedriver
然后,您可以运行brew doctor
来检查安装是否正常,并按照说明或Google问题进行操作。 More brew commands。
- 检查有冲突的版本
已安装的Google Chrome和Chromedriver应为同一版本。
通过转到应用程序左上方的“ Chrome”和“关于Google Chrome”来检查Chrome。
通过运行brew info chromedriver
- 端口问题
您可能正在尝试使用的端口上运行旧服务器。将其关闭,然后转到谷歌浏览器中的此页面。
http://localhost:<port number>/selenium-server/driver?cmd=shutDownSeleniumServer
您可以使用-port标志指定在终端中运行Selenium的端口。像这样
java -jar <location of your server> -port 8090
然后在您的accept.suite.yml配置文件中将其匹配
url: 'http://localhost:<port number>/wd/hub'
我见过的最常见的代码是在上述代码行的末尾加斜杠,或者不包括'/ wd / hub'
格式设置如下:
actor: AcceptanceTester
modules:
enabled:
- WebDriver:
url: 'http://192.168.88.100:<port number>/wd/hub'
browser: chrome
- \Helper\Acceptance
要格式化扩展名(自动运行)是这样的:
extensions:
enabled:
- Codeception\Extension\RunProcess:
- chromedriver
- 缺乏对终端/ java命令的了解
使用以下命令在终端中运行编解码测试
PHP vendor/bin/codecept run acceptance --steps
您必须先使用
cd <location of your code>
- 路径
我不知道如何检查路径是否正确配置。 (它们是否在指向其他程序的配置文件中?)但是我一直看到它们的提示散布在周围。
- 我的问题
从下面的日志中,我认为chromedriver正在加载,并且浏览器中发生了某事,但是它没有加载我的网站。而是加载下面的页面。非常感谢您的帮助!
日志:
Codeception PHP Testing Framework v4.1.8
Powered by PHPUnit 9.4.2 by Sebastian Bergmann and contributors.
Running with seed:
Acceptance Tests (1) --------------------------------------------------------------------------------------------------
[RunProcess] Starting chromedriver
QuizCest: New user_complete quiz
Signature: QuizCest:newUser_completeQuiz
Test: tests/acceptance/QuizCest.PHP:newUser_completeQuiz
Scenario --
I am on page "/"
I see "Fragrant"
FAIL
-----------------------------------------------------------------------------------------------------------------------
[RunProcess] Stopping chromedriver
Time: 00:02.653,Memory: 10.00 MB
There was 1 failure:
---------
1) QuizCest: New user_complete quiz
Test tests/acceptance/QuizCest.PHP:newUser_completeQuiz
Step See "Fragrant"
Fail Failed asserting that on page /wd/hub/static/resource/hub.html
--> Sessions
Create Session | Refresh Sessions
Chrome
e999201a1381fb966c9d02785c094ae6 | Capabilities | Take Screenshot | Delete Session | Load Script
Mac OS X 10.15.7 | v3.141.59 | re82be7d358
--> contains "Fragrant".
Scenario Steps:
2. $I->see("Fragrant") at tests/acceptance/QuizCest.PHP:14
1. $I->amOnPage("/") at tests/acceptance/QuizCest.PHP:13
Artifacts:
Png: /Applications/MAMP/htdocs/fragrantmandarin.com/tests/_output/QuizCest.newUser.completeQuiz.fail.png
Html: /Applications/MAMP/htdocs/fragrantmandarin.com/tests/_output/QuizCest.newUser.completeQuiz.fail.html
FAILURES!
Tests: 1,Assertions: 1,Failures: 1.
我的配置文件:
actor: AcceptanceTester
modules:
enabled:
- WebDriver:
url: 'http://localhost:4444/wd/hub'
browser: chrome
- \Helper\Acceptance
extensions:
enabled:
- Codeception\Extension\RunProcess:
- chromedriver
step_decorators: ~
解决方法
关于硒如何工作的excellent explanatory guide带来了突破。
我错误地认为WebDriver的网址是Selenium服务器的网址,但实际上是我的MAMP网址。
因此我将代码中的端口更改为MAMP网址:
- WebDriver:
url: 'http://localhost:8888/wd/hub'
browser: chrome
- \Helper\Acceptance
瞧,一天的工作终于完成了。哈利路亚!希望这可以帮助其他人。