一尘不染

在Travis的Protractor的Sauce Labs上运行e2e测试

selenium

所以我有我的开源项目(https://github.com/ahmednuaman/radian),并且我有一些e2e测试,可以使用Protractor在本地正常运行。

我关注了Sauce
Labs文档,
并进行了.travis.yml相应的设置。测试运行到Protractor尝试连接到Sauce
Labs上的selenium服务器的地步,这是该错误的简短快照:

Running "exec:e2e" (exec) task
Using the selenium server at ahmednuaman-radian:06dd4e07-0f52-4fdf-be5e-389f2117bbf5@localhost:4445
>> 
>> timers.js:103
>> if (!process.listeners('uncaughtException').length) throw e;
>> ^
>> TypeError: Cannot read property 'length' of undefined
>>     at HttpClient.send (/home/travis/.nvm/v0.8.26/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:62:16)

这是完整的工作日志:https :
//travis-ci.org/ahmednuaman/radian/jobs/16250460

因此,我接下来要做的是尝试在本地模拟此情况。我阅读了Sauce Labs
Connect文档,
并最终在终端中运行了它:

java -jar ~/bin/Sauce-Connect.jar USERNAME PASSWORD

一切都开始正常,与Travis完全相同,但是随后我运行grunt e2e任务(更新了protractor.conf.coffee以匹配本地Travis配置后)并收到了与Travis相同的错误,这是快照:

Running "exec:e2e" (exec) task
Using the selenium server at ahmednuaman-radian:06dd4e07-0f52-4fdf-be5e-389f2117bbf5@localhost:4445
>> 
>> /Users/ahmed/bin/node/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1542
>>       throw error;
>>             ^
>> TypeError: Cannot read property 'length' of null
>>     at HttpClient.send (/Users/ahmed/bin/node/lib/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:62:16)

我周围有个Google,但找不到其他人遇到这个问题。那么,这是我的配置吗?是量角器/网络驱动程序问题?希望对此有所了解吗?


阅读 260

收藏
2020-06-26

共1个答案

一尘不染

好的,所以在再次阅读所有文档之后,我发现我config.seleniumAddress不正确,因为它最后缺少/wd/hub路径。然后我收到一个新错误:它在抱怨我的凭据。

深入Protractor的源代码后,我发现这个doozysauce*如果我指定a
,它基本上清除了所有凭据seleniumAddress,因此我从配置中将其删除,再次尝试并成功了!哇!这是特拉维斯的输出,很有趣:https : //travis-
ci.org/ahmednuaman/radian/jobs/16271613

因此,通过Travis使量角器在Sauce Labs上运行的方法是使用以下配置选项:

config.sauceUser = process.env.SAUCE_USERNAME
config.sauceKey = process.env.SAUCE_ACCESS_KEY
config.capabilities =
  'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER
  'build': process.env.TRAVIS_BUILD_NUMBER

不是 添加一个seleniumAddress

2020-06-26