gpt4 book ai didi

javascript - 大于 100 但从 html 传递字符串的 Protractor 测试用例

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

如何在 Protractor 中将字符串更改为整数。我们无法知道问题所在,它有时会给出正确的结果,有时会给出错误的结果。需要帮助...谢谢

app.e2e-spec.ts:

import {AppPage} from "./app.po";
import { saveAs } from 'file-saver/FileSaver';
import {browser, by, element, protractor} from "protractor";


describe('The Right Doctor Test Report ', function() {
let page: AppPage;
browser.waitForAngularEnabled(false);

let linksArray:string[]=[];
let imagesArray:string[]=[];
let videosArray:string[]=[];
let socialArray:string[]=[];
beforeEach(() => {
page = new AppPage();
});

it('Get All Home Page Test ', () => {
/* page.navigateTo();*/
browser.get('http://localhost:4200/');
browser.driver.manage().window().maximize();
browser.sleep(10000);
//find all links
let linkCount = element.all(by.css('.testChecking'));
//here you click each of the links:
linkCount.each(function(elem,index){
elem.getAttribute('href').then(function(link){
if(link!=null)
linksArray.push(link);
});
});
});

it('Single Video Page Test Cases: ', () => {
for(let i=0;i<linksArray.length;i++) {
browser.get(linksArray[i]).then(()=> {
// total views should be greater than 100
//expect(element(by.css('.sviews')).getText()).not.toBeLessThan(100);
expect(parseInt(element(by.css('.sviews')).getText())).not.toBeLessThan(100);
});
browser.sleep(1000);
}
});

});

Protractor .conf.js

// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts

const { SpecReporter } = require('jasmine-spec-reporter');
var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome',
// For Travis CI only
chromeOptions: {
binary: process.env.CHROME_BIN,
args: ['--no-sandbox']
}
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 300000,
print: function() {}
},
onPrepare: function() {
jasmine.getEnv().addReporter(
new Jasmine2HtmlReporter({
savePath: './screenshots/'
})
);
jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({
savePath: './screenshots/',
screenshotsFolder: 'images',
takeScreenshots: true,
consolidateAll: true,
cleanDestination: true,
//takeScreenshotsOnlyOnFailures: true,
//showPassed: false,
fileName: 'TestReport'
}));
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};

如果我不使用 parseInt 那么:

53 次浏览和 111 次浏览 enter image description here

40 次浏览和 200 次浏览 enter image description here

111 次浏览和 47 次浏览 enter image description here

40 次浏览和 50 次浏览 enter image description here

如果我写 parseInt 则显示下面的结果。输出:

138 次浏览和 340 次浏览 enter image description here

47 次观看和 340 次观看 enter image description here

最佳答案

您期望 .getText() 返回一个字符串。它实际上返回一个需要解决的 promise 。使用await在测试之前解决 promise 它应该会给你你需要的结果。

let str = await element(by.css('.sviews')).getText();
let num = parseInt(str);
await expect(num).not.toBeLessThan(100);

另一个可行的想法是检查长度而不是数字。任何小于 100 的数字都将是 1 或 2 位数字,而大于 100 的数字将是 3 位或更多。正则表达式字符串 .{3,} 只有在字符串包含 3 个或更多字符时才会通过。

expect(element(by.css('.sviews')).getText()).toMatch(/.{3,}/);

关于javascript - 大于 100 但从 html 传递字符串的 Protractor 测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52557000/

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