我正在尝试使用使用硒和氯化物的量角器对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{project_home}/src/js/node_modules/webdriver-manager/selenium/chromedriver_2.24{project_home}/src/js/node_modules/webdriver-manager/selenium/selenium-server-standalone-2.53.1.jar{project_home}/src/js/node_modules/protractor{project_home}/src/js/node_modules/webdriver-manager这是Jenkins的控制台输出:
...
21:58:07.380 INFO - Launching a standalone Selenium …Run Code Online (Sandbox Code Playgroud) selenium google-chrome jenkins selenium-webdriver protractor
我刚刚安装了Mongo,Node等,当我尝试通过我的nodejs服务器更新数据库时,我收到此错误:
MongoError: driver is incompatible with this server version
Run Code Online (Sandbox Code Playgroud)
以下是我的版本:
我有一切的最新版本,我搜索了节点mongodb驱动程序git,找出支持mongodb的版本,但我找不到任何东西:(
我还读了关于它的其他SO问题,它说要更新你的mongodb,但我的是最新版本!
有帮助吗?
我正在尝试运行没有参数的命令"/home/simulations/scripts/getDsuIp.sh".
当我在机器上手动运行此命令时,它工作得很好!所以文件肯定存在,绝对可以运行(755),并且在同一个用户(root)下.当我尝试运行执行此文件的Java程序时,问题就出现了.我只在一台机器上看到这个问题,它在其他地方工作,但我想弄清楚为什么它失败了.
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运行它的方法之一:
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) 是否可以使用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 发送消息.
版本信息:
我正在使用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) 我有一个大拉斐尔画布,上面画着数百个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)
'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) 我在路由和提供静态文件方面遇到了一些麻烦.
我的目录结构是这样的:
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)
我希望这件事发生:
这就是我设置服务器的方式:
...
//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)
但是当我访问索引时会发生这种情况: …
使用节点 v.0.10.29,Express v4.12.0和xmldom v0.1.19,我正在尝试执行以下操作:
<name>default</name>字段设置为<name>test</name>问题在于,设置<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) 使用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
我正在使用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)