小编Kat*_*tie的帖子

ChromeDriver一直在Jenkins Selenium Job上崩溃:"WebDriverError:Chrome无法启动:崩溃"

我正在尝试使用使用硒和氯化物的量角器对Jenkins进行一些自动化测试.

我还设置了xvfb,以便我们可以无头地运行这些测试.我安装了xvfb jenkins插件,它运行正常.


错误

我遇到的问题是,当我开始测试时,chrome一直在崩溃.我收到此错误:

E/launcher - WebDriverError: unknown error: Chrome failed to start: crashed
...
E/launcher - Process exited with error code 199
Run Code Online (Sandbox Code Playgroud)

建立

以下是我对系统设置的信息:

  • 铬
    • 地点: /usr/bin/google-chrome
    • 版本:Chromium 52.0.2743.0
  • ChromeDriver
    • 地点: {project_home}/src/js/node_modules/webdriver-manager/selenium/chromedriver_2.24
    • 版本:ChromeDriver 2.24.417424
  • 硒
    • 地点: {project_home}/src/js/node_modules/webdriver-manager/selenium/selenium-server-standalone-2.53.1.jar
    • 版本:2.53.1
  • 量角器
    • 地点: {project_home}/src/js/node_modules/protractor
    • 版本:4.0.9
  • WebDriver Manager
    • 地点: {project_home}/src/js/node_modules/webdriver-manager
    • 版本:10.2.4
  • 詹金斯
    • 版本:1.6.17
  • XVFB
    • 版本:未知
  • 节点
    • 版本:6.7
  • Java的
    • 版本:java-8-openjdk-amd64

产量

这是Jenkins的控制台输出:

...
21:58:07.380 INFO - Launching a standalone Selenium …
Run Code Online (Sandbox Code Playgroud)

selenium google-chrome jenkins selenium-webdriver protractor

7
推荐指数
1
解决办法
2908
查看次数

MongoError:驱动程序与此服务器版本不兼容

我刚刚安装了Mongo,Node等,当我尝试通过我的nodejs服务器更新数据库时,我收到此错误:

MongoError: driver is incompatible with this server version
Run Code Online (Sandbox Code Playgroud)

以下是我的版本:

我有一切的最新版本,我搜索了节点mongodb驱动程序git,找出支持mongodb的版本,但我找不到任何东西:(

我还读了关于它的其他SO问题,它说要更新你的mongodb,但我的是最新版本!

有帮助吗?

mongodb node.js express mongoskin node-mongodb-native

6
推荐指数
1
解决办法
4989
查看次数

Java:使用"exec"或"ProcessBuilder"运行命令时出现"UNIXProcess"错误

我正在尝试运行没有参数的命令"/home/simulations/scripts/getDsuIp.sh".

当我在机器上手动运行此命令时,它工作得很好!所以文件肯定存在,绝对可以运行(755),并且在同一个用户(root)下.当我尝试运行执行此文件的Java程序时,问题就出现了.我只在一台机器上看到这个问题,它在其他地方工作,但我想弄清楚为什么它失败了.

使用ProcessBuilder运行该过程

ProcessBuilder pb = new ProcessBuilder("/home/simulations/scripts/getDsuIp.sh");
Process p = pb.start();
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.UnsatisfiedLinkError: java.lang.UNIXProcess.init()V
    at java.lang.UNIXProcess.init(Native Method)
    at java.lang.UNIXProcess.<clinit>(UNIXProcess.java:295)
    at java.lang.ProcessImpl.start(ProcessImpl.java:130)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
    at mycompany.PCtrlDsu.getDsuIP(PCtrlDsu.java:136)
    at mycompany.PCtrlDsu.main(PCtrlDsu.java:41)
Run Code Online (Sandbox Code Playgroud)

我也尝试过其他方法来运行它,导致同样的错误:

使用exec运行该进程

这是我尝试使用exec运行它的方法之一:

String[] cmd = {"/home/simulations/scripts/getDsuIp.sh"};
Process p = Runtime.getRuntime().exec(cmd);
InputStream in = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String result = br.readLine();
p.waitFor(); …
Run Code Online (Sandbox Code Playgroud)

java

6
推荐指数
1
解决办法
915
查看次数

如何从linux中的命令行向socket.io websocket发送消息?

是否可以使用linux中的命令行向我的localhost服务器(节点)发送socket.io消息?我不确定这是否可行......从稀缺的谷歌搜索结果来看,我猜这不可能或不复杂......

我的socket.io代码如下所示:

var io = require('socket.io');
var socket;

socket = io.listen(server, {log: false});
server.listen(8081);

socket.sockets.on('connection', function (socket) {
  socket.on('message', function (data) 
  {
    console.log("Received socket message from GUI: "+data);
  }
});
Run Code Online (Sandbox Code Playgroud)

我想发送一个看起来像这样的socket.io消息:"testControl,loadModels,start"然后触发一些服务器端逻辑.这可能吗?

我遇到了websocketd似乎很有希望,但它在linux中创建了一个websocket,我只想向现有的 websocket 发送消息.

版本信息:

  • 节点版本:v0.10.42
  • Socket.IO版本:1.3.4
  • 快递版:4.12.0

linux bash websocket socket.io

6
推荐指数
3
解决办法
7469
查看次数

我如何让守望者向记者展示柴的主张?

我正在使用Nightwatch JS v0.9.16在我的localhost上运行selenium/chai测试.所有的断言都适用于守夜人,但我无法在报道中看到这个断言.

这个问题已经在这里讨论了:https://github.com/nightwatchjs/nightwatch/issues/601然而它已经关闭但没有解决方案......任何人都可以让它工作吗?

这是我的测试:

var assert = require('chai').assert;

module.exports = {
  'pressing the "Servers" tab should change the URL to #servers' : function (client) {
    const pages = client.page,
          home_page = pages.home(),
          servers_page = pages.servers();

    home_page.navigate();
    servers_page.expect.element('body').to.be.present.before(1000);
    client.pause(1000);
    servers_page.click('@nav');
    servers_page.expect.element('@servers_div').to.be.present.before(1000);
    client.url(function(response){
        var currentUrl = response.value.replace(client.launch_url,"");
        console.log("url is ",response.value);

        //***CHAI ASSERTION doesn't get shown on reporter:***
        assert(currentUrl.indexOf('#servers')!=-1);

        client.end();
    });

  }
};
Run Code Online (Sandbox Code Playgroud)

此测试通过时的屏幕截图显示除chai之外的所有断言:

柴测试通过

当它失败时它显示AssertionError: Unspecified AssertionError:

柴测试失败

这是我的测试设置(nightwatch.json)

{
  "src_folders" : ["tests"], …
Run Code Online (Sandbox Code Playgroud)

chai nightwatch.js

6
推荐指数
1
解决办法
458
查看次数

1.9px文本大小显示为1px - Raphael SVG,CSS,Javascript

我有一个大拉斐尔画布,上面画着数百个SVG,我正在使用" raphael pan and zoom "插件来放大和缩小.

因此,我最初绘制的svgs非常小,用户只需放大/缩小.

我遇到的问题是2px文本大小太大,1px文本大小太小,但是当我尝试"1.5px"时,它再次显示为1px文本大小.

我无法将字体大小更改为1.5px,或任何一半的大小(1.2,1.6,1.9 ......)

这是我的代码:

...
this.paper.text(x, y, string)
          .attr({'font-family':'myFont', 'font-size':'1.5px'});
...
Run Code Online (Sandbox Code Playgroud)
  • 当我将任何数字从"1px"添加到" 1.9px "时,它将被渲染为大小" 1px ".
  • 当我把" 2px "时,它呈现为" 2px "的大小.

'myFont'的CSS是:

@font-face {
    font-family: 'myFont';
    src:url('fonts/myFont.eot');
    src:url('fonts/myFont.eot?#iefix') format('embedded-opentype'),
        url('fonts/myFont.woff') format('woff'),
        url('fonts/myFont.ttf') format('truetype'),
        url('fonts/myFont.svg#myFont') format('svg');
    font-weight: normal;
    font-style: normal;
}

[data-icon]:before {
    font-family: 'myFont';
    content: attr(data-icon);
    speak: none;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    /* line-height: 1; */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.icon-home, .icon-zoom-in{
    font-family: 'myFont';
    speak: none; …
Run Code Online (Sandbox Code Playgroud)

javascript css jquery svg raphael

5
推荐指数
1
解决办法
820
查看次数

节点/快速 - 服务静态不工作/如何使用服务静态文件的路由

我在路由和提供静态文件方面遇到了一些麻烦.

我的目录结构是这样的:

app/
--server.js
--controllers/
--directives/
--etc.
assets/
--img/
--css/
--etc.
views/
--partials/
  --view1.jade
  --view2.jade
--index.jade
--layout.jade
--etc.
Run Code Online (Sandbox Code Playgroud)

我希望这件事发生:

  • app/ - 提供静态文件(例如,"GET /app/controllers/controller.js"应该发送文字文件)
  • assets/ - 提供静态文件(例如,"GET /assets/css/custom.css"应该发送文字文件)
  • views/ - 动态路由(例如,"GET/partials/view1"使用我设置的路由规则)

这就是我设置服务器的方式:

  ...
//PATHS:
  var viewsPath = path.join(__dirname, '..', 'views');
  var appPath = path.join(__dirname, '..', 'app');
  var assetsPath = path.join(__dirname, '..', 'assets');
  ...
//SERVE-STATIC:
  app.set('views', viewsPath);
  app.use(serveStatic(appPath));
  app.use(serveStatic(assetsPath));
  ...
//ROUTES:
  // serve index and view partials
  app.get('/', routes.index);

  //Partials
  app.get('/partials/:name', routes.partials);
 ...
Run Code Online (Sandbox Code Playgroud)

但是当我访问索引时会发生这种情况: …

node.js express

5
推荐指数
1
解决办法
1666
查看次数

节点+ xmldom:如何更改JavaScript中单个XML字段的值?

使用节点 v.0.10.29,Express v4.12.0和xmldom v0.1.19,我正在尝试执行以下操作:

脚步

  1. 将XML文件读入字符串
  2. 使用xmldom 将字符串转换为XML对象
  3. 将<name>default</name>字段设置为<name>test</name>
  4. 将XML对象转换回字符串

问题

问题在于,设置<name>字段后,它在对象中的设置正确,但是当我将其转换为字符串时,该<name>字段又恢复为旧值(错误)。

码

代码如下所示:

var fs = require('fs');
var DOMParser = require('xmldom').DOMParser;
var XMLSerializer = require('xmldom').XMLSerializer;
var filename = "myFile.xml";

fs.readFile(filename, "utf-8", function (err,data) 
{
    //CREATE/PARSE XML OBJECT FROM STRING
    var customerConfig = new DOMParser().parseFromString(data);

    //SET VALUE TO "TEST" (<name>default</name> TO <name>test</name>)
    customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue = "test";

    //THIS OUTPUTS "test" WHICH IS CORRECT - 
    console.log(customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue);

    //SERIALIZE …
Run Code Online (Sandbox Code Playgroud)

javascript xml-serialization node.js xml-parsing domparser

5
推荐指数
1
解决办法
3711
查看次数

Jenkins Pipeline sshPublisher:如何获取execCommand的退出代码和输出?

使用Jenkins Pipeline的sshPublisher插件(“通过ssh发布”),是否可以获取退出代码和运行命令的输出execCommand(在转移工件之后)?

我正在使用插件,如下所示:

script {
    echo "Sending artifacts to machine at " + remoteDirectory

    // Use of the ssh publisher plugin over SSH
    sshPublisher(
        failOnError: false,
        publishers: [
            sshPublisherDesc(
                configName: "my-drive",
                transfers: [
                    sshTransfer(
                        sourceFiles: mySourceFilesList,
                        remoteDirectory: remoteDirectory,
                        flatten: true,
                        execCommand: commandToExec,
                        execTimeout: 1800000
                    )
                ],
                sshRetry: [
                    retries: 0
                ]
            )
        ]
    )
    // How can I get the output of execCommand?
    // If the exit code was 1, I want to perform some …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-plugins jenkins-groovy jenkins-pipeline

5
推荐指数
1
解决办法
457
查看次数

使用选项和参数执行shell脚本

我正在使用Jenkins在linux机器上启动脚本.

当我运行这个手动的服务器上,它的工作原理:

/bin/bash -c '/some/script MyProduct SomeBranch'

当我用groovy 运行它时,它不起作用.

我得到了同样的错误,好像我没有传递"-c"选项,所以不知何故"-c"不起作用.

这是我的代码:

branchName = "SomeBranch"
configName = "release"
println "Building for branch "+branchName+" and configuration "+configName

def chkbranch = { String product, String branch -> mkcmd( product, branch ) } 
private def mkcmd ( String product, String branch ) {
  // Build the command string to run
      def cmd = "/bin/bash -c '/some/script "+product+" "+branch+"'"
      def sout = new …
Run Code Online (Sandbox Code Playgroud)

groovy

4
推荐指数
1
解决办法
9722
查看次数