gpt4 book ai didi

javascript - Selenium 、 Mocha 、MySQL。 mysql运行顺序

转载 作者:行者123 更新时间:2023-11-30 22:51:30 25 4
gpt4 key购买 nike

我将 selenium 与 mocha 和 node-mysql 一起用于我的测试。但是陷入困境。看起来我的部分代码在测试操作之前执行了 mysql 查询:

mysqlfunc.js

var mysql = require('mysql');
var connection = mysql.createConnection('here is my connection url');

exports.countNums = function countNumbers(phone, user, callback){
connection.query('Here is SELECT', function(err, rows, fields) {
if (err) throw err;


callback(rows[0]['COUNT(*)']);

});
connection.end();
};

和 test.js:

var wd = require('selenium-webdriver');
var assert = require('chai').assert;
var phonelist = require('./mysqlfunc.js')

var SELENIUM_HOST = 'http://localhost:4444/wd/hub';
var URL = 'myurl.com';

var client = new wd.Builder()
.usingServer(SELENIUM_HOST)
.withCapabilities({ browserName: 'firefox' })
.build();



client.manage().timeouts().implicitlyWait(10000);


suite('Blacklists');

test('adding to blacklist', function(done){



client.get(URL);
client.findElement({ name: 'username' }).sendKeys('autolistmanageuser');
client.findElement({ name: 'password' }).sendKeys('autolistmanageuser');
client.findElement({ id: 'login-button' }).click();
client.findElement({ linkText: 'Black list' }).click();
client.sleep(2000)
client.findElement({ linkText: 'Addnum' }).click();


client.findElement({ xpath: '/html/body/div[4]/div/div/div[2]/div/form/fieldset/div[2]/div[1]/div/div/div/input' }).sendKeys('79265914970');
client.findElement({ xpath: '/html/body/div[4]/div/div/div[2]/div/form/fieldset/div[2]/div[3]/div/div/label[1]/input[@value="1"]' }).click();


client.findElement({ xpath: '/html/body/div[4]/div/div/div[2]/div/form/div[2]/button' }).click()

//HERE IS THE PROBLEM!!! Looks like countNums executing before all the selenium code above then result is 1
phonelist.countNums('79265914970','autolistmanageuser', function(result) {

assert.equal(0, result, 'Number was not deleted');

done();
},done);
});

在 selenium 操作之前执行的 phonelist.countNums 返回错误值的问题selenium代码使用网页删除电话号码phonelist.countNums - 从 Mysql 出现的已删除号码中选择 count(*),所以我在等待 0

最佳答案

因为一切都是异步的,我的 phonelist.countNums 没有进入 webdriver 的流控制,而是与 webriver 并行启动。所以解决方案是排队进入 webdriver 顺序:

client.isElementPresent({ linkText: 'pages 2600' }).then(function(result) {

phonelist.countNums('79265914970','autolistmanageuser', function(date) {
console.log('external ' +date);
assert.equal(0, date, 'number is still present');
});
done();
},done);

这对我来说很好,我希望这是正确的答案。祝你好运!

关于javascript - Selenium 、 Mocha 、MySQL。 mysql运行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28047960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com