Codeception WebDriver模块url参数失效 始终连接localhost问题求助
Codeception WebDriver模块配置url不生效问题解决方案
核心原因
你混淆了WebDriver模块两个作用完全独立的配置参数:url 根本不负责指定WebDriver服务的连接地址,修改该参数自然不会影响WebDriver的服务连接逻辑。
参数作用区分
url:你要测试的PHP应用的根访问地址,仅用于告知WebDriver控制浏览器打开目标站点时使用,和WebDriver服务本身的连接地址无关host:ChromeDriver/GeckoDriver/Selenium等WebDriver服务的监听IP/域名,默认值为127.0.0.1,未主动配置时就会一直尝试连接本地服务
解决方法
在WebDriver的配置块中新增host参数,填写你的WebDriver服务实际运行的地址即可,修正后的配置示例如下:
class_name: AcceptanceTester modules: enabled: - WebDriver: url: "http://myserver" # 保留原测试站点地址配置 host: "myserver" # 新增该行,填写WebDriver服务的实际监听地址 window_size: false # disabled in ChromeDriver port: 9515 browser: chrome capabilities: chromeOptions: args: ["--headless", "--disable-gpu"] # Run Chrome in headless mode prefs: download.default_directory: "/tmp" - Yii2: part: orm entryScript: index-test.php cleanup: false
验证操作
- 检查配置文件中是否存在
env环境配置块,确认对应环境下没有覆盖host参数为127.0.0.1 - 确认WebDriver服务启动时没有仅绑定本地回环地址,以ChromeDriver为例,启动时可添加参数
--allowed-ips='*'放开访问限制,避免跨设备连接被拒绝 - 修改配置后执行
codecept build重新生成AcceptanceTester类,确保新配置完全加载 - 重新执行测试命令验证连接是否正常
内容的提问来源于stack exchange,提问作者The Bndr
相关产品推荐
相关产品推荐

