gpt4 book ai didi

angularjs - Protractor 实例不做任何事情

转载 作者:行者123 更新时间:2023-12-02 03:08:11 30 4
gpt4 key购买 nike

从前一天到另一天,我无法与正在测试的 Angular 页面进行交互。

我得到的唯一结果:

Started
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
F

页面有这个:

<html lang="sv" class="no-js" data-ng-app="app">

所以它应该有效,还是无效?我尝试检查 iFrame 并增强了 allScriptTimeout: 360000,但没有任何帮助。

这是我的配置:

var TIMEOUT = 360000;
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
var reporter = new HtmlScreenshotReporter({
dest: 'report/screenshots',
filename: 'my-report.html'
});
exports.config = {
seleniumAddress: 'http://dmc-l01-ap08.dmc.de:4448/wd/hub',
baseUrl: 'https://int.system.com/',

specs: [
'./UseCases/protractorTestcaseNightly.js',
],

Capabilities: [
{
'browserName': 'chrome',
shardTestFiles: false,
maxInstances: 1,
maxSessions: -1,
restartBrowserBetweenTests: true,
},
],

getPageTimeout: TIMEOUT,
allScriptsTimeout: TIMEOUT,
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: TIMEOUT,
includeStackTrace : true,
isVerbose : true,
},
framework: "jasmine2",
onPrepare: function () {
browser.driver.manage().window().maximize();
browser.driver.manage().deleteAllCookies();

jasmine.getEnv().addReporter(reporter);

var reporters = require('jasmine-reporters');
var junitReporter = new reporters.JUnitXmlReporter({
savePath: 'report/xml',
consolidateAll: false,
filePrefix: 'xmloutput'
});
jasmine.getEnv().addReporter(junitReporter);
}
};

更新:我加了

rootElement: 'html',

到我的配置。但是什么都没有改变。在单击第一个元素之前,我还从页面中截取了屏幕截图。在屏幕截图中,我可以看到我想要点击的元素。

这是我的测试规范:

describe('Start testspec | ', function () {

it('opens the start', function () {
browser.get("/de-de/connect/").then(function () {
console.log("1"); //works
browser.executeScript('localStorage.clear();sessionStorage.clear();'); //works (?)
console.log("2"); //works
expect(element(by.xpath('//*[@class="btn-link"]'))).toBeTruthy(); //works
console.log("3"); //works


browser.sleep(3000); //works
element(by.css('.ms-linklist-typ-1 a')).click(); //DOES NOT WORK :(
browser.sleep(3000); //works
});
});
});

我必须点击“btn-link”/css 元素,因为这是 cookie 层,必须先点击它才能到达任何其他元素...有什么想法吗?

最佳答案

看起来您使用的超时配置不正确。 allScriptTimeout 仅适用于后端应用程序脚本,不适用于整个 Jasmine 规范

请看下面解释的三个超时

因此,在您的情况下,您增加了 jasmineNodeOpts.defaultTimeoutInterval 以增加整体规范的超时时间

尝试进行以下更改,看看是否可以解决问题

   jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 120000,
includeStackTrace : true,
isVerbose : true,
},

此外,Protractor 假定您的 angular-app 根元素是 body。请参阅以下文档中的以下摘录。由于您的 ng-app 驻留在不同的元素上,因此可能会相应地更新 config.js

/** * CSS Selector for the element housing the angular app - this defaults to * 'body', but is necessary if ng-app is on a descendant of . */

 rootElement?: string;

关于angularjs - Protractor 实例不做任何事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41376730/

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