当前位置: 首页 > 知识库问答 >
问题:

在linux上使用量角器运行selenium chromedriver

蓬运诚
2023-03-14

我正在使用量角器对角度应用程序运行测试。他们在我的OSX环境中工作,但在TeamCity尝试运行它的Linux上却不工作。

当我在本地OSX环境中运行此命令时,它可以工作(在我的同事机器上也进行了测试):

./node_modules/protractor/bin/protractor protractor.conf.js

Using ChromeDriver directly...
..
Finished in 5.55 seconds
2 tests, 2 assertions, 0 failures

当我在linux机器上运行此操作时,或者TeamCity作业尝试运行它时,它会失败:

./node_modules/protractor/bin/protractor protractor.conf.js

Using ChromeDriver directly...

/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/http/util.js:87
          Error('Timed out waiting for the WebDriver server at ' + url));
          ^
Error: Timed out waiting for the WebDriver server at http://127.0.0.1:52959/
    at Error (<anonymous>)
    at onResponse (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/http/util.js:87:11)
    at /usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/http/util.js:42:21
    at /usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/http/http.js:96:5
    at ClientRequest.<anonymous> (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:136:7)
    at ClientRequest.EventEmitter.emit (events.js:95:17)
    at Socket.socketErrorListener (http.js:1547:9)
    at Socket.EventEmitter.emit (events.js:95:17)
    at net.js:440:14
    at process._tickCallback (node.js:415:13)
==== async task ====
WebDriver.createSession()
    at Function.webdriver.WebDriver.acquireSession_ (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:131:49)
    at Function.webdriver.WebDriver.createSession (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:111:30)

我已经研究过这个问题,但独立的webdrive服务器不是解决方案。

我研究了这个问题,但我的selenium wedriver版本是2.42.1,所以,不是同一个bug。

$ node --version
v0.10.26

$ ./node_modules/protractor/bin/protractor --version
Version 1.0.0

$ uname -mrs
Linux 3.11.0-15-generic x86_64

试图获取chrome webdriver的版本时暴露了一个问题:

$ ./node_modules/protractor/selenium/chromedriver --version
./node_modules/protractor/selenium/chromedriver: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory

由此我得出结论,存在依赖性问题,并发现硒需要铬。(更多)。

我使用以下步骤将Chrome安装到Linux设备上:

sudo apt-get install libxss1 libappindicator1 libindicator7
sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb

这并不完全像那样工作,但是经过几次依赖和sudo apt-get install的反复,我想我安装了Chrome:

$ google-chrome --version
Google Chrome 36.0.1985.143 

这使得chromedriver版本能够正常工作:

$ ./node_modules/protractor/selenium/chromedriver --version
ChromeDriver 2.10.267518

但是,运行量角器仍然不起作用:

$ ./node_modules/protractor/bin/protractor protractor.conf.js
Using ChromeDriver directly...

/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/error.js:109
  var template = new Error(this.message);
                 ^
UnknownError: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.10.267518,platform=Linux 3.11.0-15-generic x86_64)
    at new bot.Error (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/error.js:109:18)
    at Object.bot.response.checkResponse (/usr/share/TeamCity/buildAgent/work/57bd89f9c9abb5d5/webapp/node_modules/protractor/node_modules/selenium-webdriver/lib/atoms/response.js:106:9)

共有2个答案

西门骁
2023-03-14

我也遇到了同样的问题,在安装unity-gtk3-module之后问题就解决了!!

<代码>yum安装unity-gtk3-module

Installing:
 PackageKit-gtk3-module                                      
 Updating:                                                          
Installing for dependencies:
 PackageKit-glib                                                 
 adwaita-cursor-theme                                          
 adwaita-icon-theme                                             
 at-spi2-atk                                                   
 at-spi2-core                                                   
 cairo-gobject                                                  
 colord-libs                                                    
 gtk3                                                            
 json-glib                                                       
 libXevie                                                       
 libgusb                                                  
 rest                                                           
 Updating for dependencies:
 glib2

我希望这有帮助

都超英
2023-03-14

您需要能够运行Chrome或Firefox headless,为此,您需要配置Xvfb等,否则Chrome将无法在没有适当$显示的情况下启动。

您也可以使用PhantomJS,但恕我直言,这对e2e测试有什么好处,因为它不是真正的浏览器。

这就是我成功用于连续测试的原因:https://github.com/elgalu/docker-selenium

 类似资料:
  • 问题内容: 我似乎无法通过测试成功获得PhantomJS。我试图将其集成到我的项目中,但是在此之后失败了,我尝试仅运行基本的Angular Docs示例,但遇到了同样的问题。到目前为止,我的步骤: // … GhostDriver-Main-在端口9515上运行 这是与示例中相同的文件,仅具有browserName,并且seleniumAddress端口已更改: 我收到以下错误消息: 我在gith

  • 问题内容: 我正在开发AngularJS应用,并希望使用Protractor进行端到端2端测试。我想从Browserstack上提供的测试浏览器套件中受益,并在Browserstack Automate而非本地Selenium服务器上运行测试。 如何设置系统以运行这些测试? 问题答案: 从版本3.0.0开始的量角器添加了对BrowserStack的内置支持。 您只需在您的浏览器中添加以下两个参数即

  • 如何设置系统来运行这些测试?

  • 问题内容: 在升级到Protractor 4.0.0并由于重大更改调整配置后,我们终于启动了测试。 现在的问题是,在测试运行后,它失败并显示: 如何调试此问题并了解是什么原因造成的? 试图在“疑难解答”模式下运行量角器: 但是得到了完全相同的输出,没有有关错误的详细信息。 问题答案: 目前,此问题已得到解决,应该很快就会有一个热修复。快速修补程序(在发布此修补程序之前)是更改node_module

  • 我正在尝试从命令行在windows上运行量角器 如果我直接键入命令: 它工作得很好。然而,从詹金斯内部,它一直在扔: 我的env-vars似乎还可以,因为Jenkins的java和npm工作得很好。有什么想法吗?

  • 我试图在浏览器堆栈上运行多个浏览器上的E2E测试,我参考了在量角器中的多个/并行浏览器上的E2E测试?和Internet Explorer Selenium量角器e2e测试 但每次我试着运行测试时都会犯错- 谁能告诉我什么是我做错了这里,而且我们使用gulp ti运行规范,但我的问题是它是说,甚至没有超出认证。