使用webdriver.io项目的一些记录
问题一、
webdriver.io 框架内置功能会下载不同浏览器的最新的driver,在node_module这个文件夹下面,所以每次运行项目的时间都会比较久
会卡在这个地方很久
而且可能还会出现下载失败
查阅相关文档,
之前会卡在run onpreparehook这个步骤好几分钟这个问题
代码wdio.conf 里除非是刚下载下来第一次使用, 第一次使用后就可以把里面的skipSeleniumInstall:设置为true,这样就很快开始执行,之前onpreparehook这个步骤回去执行skipSeleniumInstall:false 导致每次执行都去下载selenium-standalone服务要很久,
现在可以通过手动设为true直接使用这个服务没必要每次执行去重新下载就很快开始执行了,当然第一次还是要让它为false去下载这个服务
node_modules/.bin/selenium-standalone
默认是false,会去下载,改为true就不下了,可以提高项目的运行速度
2.出现缺少 geckodriver 文件
要下载两个文件并且改名然后并放到两个不同的路径,版本和当前使用的浏览器版本要对应
1.下载最新的geckodriver.exe, 改名为latest-x64-geckodriver(不能有后缀)放到geckodriver目录下
2.下载最新的chromedriver.exe, 改名为latest-x64-chromedriver(不能有后缀)放到chromedriver目录下
具体操作见下面:
chromedriver下载操作:
1.http://chromedriver.storage.googleapis.com/index.html下载跟本地chrome浏览器版本一致的chromedriver.zip
如果上面的下载不到 则到 淘宝的镜像库网站
淘宝npm镜像库网站:https://www.npmmirror.com/
chromedriver是谷歌浏览器驱动,用来模拟谷歌运行操作的一个工具,用其他的浏览器也要下载相对应的驱动。
下载的版本要与浏览器版本一致
2.解压后复制chromedriver.exe到"$项目目录/node_modules\selenium-standalone\.selenium\chromedriver"下
3.重命名chromedriver.exe为latest-x64-chromedriver(备注:不带后缀)
geckodriver下载操作:
1.https://github.com/mozilla/geckodriver/releases/里下载最新的包,
2.解压后复制geckodriver.exe到"$项目目录/node_modules\selenium-standalone\.selenium\geckodriver"下
3.重命名geckodriver.exe为latest-x64-geckodriver(备注:不带后缀)
selenium-server-4.0.0.jar下载操作:
Error: Could not download https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.0.0/selenium-server-4.0.0.jar
at Request.<anonymous> (E:\Project\NetDragon\Portal2.0\portal-functional-tests\node_modules\selenium-standalone\lib\install.js:292:17)
直接点击链接下载指定的jar包 ,并放到指定的文件夹
node_modules/selenium-standalone/.selenium/selenium-server/4.0.0/selenium-server.jar
【问题记录】
2023-05-31T03:44:12.408Z ERROR @wdio/selenium-standalone-service: Error: Missing E:\Project\NetDragon\Portal2.0\portal-functional-tests\node_modules\selenium-standalone\.selenium\chrome
driver\latest-x64\chromedriver
【问题解决】
文件夹内明明有对应的 文件但是显示 找不到文件,需要更改后缀名,点击【查看】,选择【文件扩展名】,勾选【文件扩展名】,得去掉,所以实际上 【【这个文件 】】才是 真的使用的 driver
出现当前问题,这样解决
./node_modules/.bin/selenium-standalone install
找不到 selenium-server.jar
2022-12-07T07:26:24.855Z ERROR @wdio/selenium-standalone-service: Error: Missing E:\Project\NetDragon\portal-functional-tests\node_modules\selenium-standalone\.selenium\selenium-server\4.4.0\selenium-server.jar
at E:\Project\NetDragon\portal-functional-tests\node_modules\selenium-standalone\lib\check-paths-existence.js:13:15
at async Promise.all (index 1)
at Object.start (E:\Project\NetDragon\portal-functional-tests\node_modules\selenium-standalone\lib\start.js:147:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! portal-functional-tests@2.0.0 local: `wdio run wdio.conf.js --skipSeleniumInstall true "--web" "--tag" "200309"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the portal-functional-tests@2.0.0 local script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
cmd下查看selenium-server.jar 是否正常
java -jar selenium-server.jar
解决方法:重新跑一次npm run test 重新按照地址下载selenium-server
问题无法创建webdriver的session
[0-26] RUNNING in chrome - E:\Project\NetDragon\Portal2.0\portal-functional-tests\tests\features\web\UserManagement\Users\userFilter.feature
[0-26] 2022-12-07T08:18:18.313Z WARN webdriver: Request failed with status 500 due to Could not start a new session. Error while creating session with the driver service. Stopping driver service: Could not start a new session. Respo
nse code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 106
[0-26] Current browser version is 108.0.5359.95 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
属于当前的driver和实际的浏览器不匹配 需要根据浏览器去选择匹配的driver