gpt4 book ai didi

angularjs - Protractor "Can' t 读取未定义的属性 'click'”

转载 作者:太空宇宙 更新时间:2023-11-03 22:15:42 24 4
gpt4 key购买 nike

我无法点击某些 CSS 定位器来操纵他的“数学地板”。请您帮忙。

此测试的 CSS 部分:

<input ng-attr-id="industry_{{$index}}" ng-attr-value="{{$index}}" ng-model="stateData.currentIndustryIndex" type="radio" class="ng-pristine ng-valid" name="00K" id="industry_0" value="0">

这是我的测试 -

it ('onboarding - screen 2', function() {
browser.driver.wait(by.css('.industry input[type="radio"]'), 10000);
element (by.css('.industry input[type="radio"]'))[Math.floor(Math.random() * (12 - 0 + 1))].click();
//element(by.css("li.ng-scope.icon-laptop > label.ng-binding")).click();
browser.driver.sleep(1000);
//element(by.xpath("//div[1]/div/main/div[3]/section/div/form/div[1]/section[2]/div/ul/li[4]/label")).click();
browser.driver.sleep(2000);
//element(by.css('input.btn')).click();
browser.driver.sleep(3000);
//Capture Screenshoot
browser.driver.takeScreenshot().then(function(data){
var base64Data = data.replace(/^data:image\/png;base64,/,"");
var fs = require("fs");
fs.writeFile("onboarding-screen2.png", base64Data, 'base64', function(err) {
if(err) console.log(err);
});
});
});
});

Protractor 配置文件

var path = require('path');
//var reporters = require('jasmine-reporters');
var HtmlReporter = require('protractor-html-screenshot-reporter');
var fs = require("fs");

exports.config = {

chromeDriver: 'node_modules/protractor/selenium/chromedriver',
chromeOnly: false,
seleniumAddress: 'http://localhost:4444/wd/hub',

specs: ['demo.js'],

//specs: ['./Scripts/*.js'],

capabilities: {
browserName: 'chrome',
'chromeOptions': {
args: ['--test-type','--memory-metrics','--console','--crash-on-failure','--load-extension=' + 'C:\\Users\\idan\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\idgpnmonknjnojddfkpgkljpfnnfcklj\\1.2.4_0']

}
},

rootElement: '.main',

framework: "jasmine",

allScriptsTimeout: 10000,

getPageTimeout: 10000,

onPrepare: function() {
browser.driver.manage().window().maximize();
return browser.driver.get('http://www.vcita.com');
jasmine.getEnv().addReporter(new HtmlReporter({
baseDirectory: 'C:\\Users\\idan\\AppData\\Roaming\\npm\\node_modules\\protractor\\example',
docTitle: 'my reporter',
docName: 'protractor-demo-tests-report.html'
}));

// var jasmineReporters = require('jasmine-reporters');
// jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
// consolidateAll: true,
// filePrefix: 'xmloutput',
// savePath: 'C:\\Users\\idan\\AppData\\Roaming\\npm\\node_modules\\protractor\\example\\screenshots'
// }));
},

jasmineNodeOpts: {
onComplete: null,
// If true, display spec names.
isVerbose: true,
// If true, print colors to the terminal.
showColors: true,
// If true, include stack traces in failures.
includeStackTrace: true,
// Default time to wait in ms before a test fails.
defaultTimeoutInterval: 660000
}

}

Package.json

{
"name": "protractor",
"description": "Webdriver E2E test wrapper for Angular.",
"homepage": "https://github.com/angular/protractor",
"keywords": [
"angular",
"test",
"testing",
"webdriver",
"webdriverjs",
"selenium"
],
"author": {
"name": "Julie Ralph",
"email": "ju.ralph@gmail.com"
},
"dependencies": {
"request": "~2.36.0",
"selenium-webdriver": "2.45.1",
"minijasminenode": "1.1.1",
"jasminewd": "1.1.0",
"jasminewd2": "0.0.3",
"jasmine": "2.1.1",
"saucelabs": "~0.1.0",
"glob": "~3.2",
"adm-zip": "0.4.4",
"optimist": "~0.6.0",
"q": "1.0.0",
"lodash": "~2.4.1",
"source-map-support": "~0.2.6",
"html-entities": "~1.1.1",
"accessibility-developer-tools": "~2.6.0"
},
"devDependencies": {
"expect.js": "~0.2.0",
"chai": "~1.8.1",
"chai-as-promised": "~4.1.0",
"jshint": "2.5.0",
"mocha": "1.21.4",
"cucumber": "~0.3.3",
"express": "~3.3.4",
"lodash": "~2.4.1",
"rimraf": "~2.2.6"
},
"repository": {
"type": "git",
"url": "git://github.com/angular/protractor.git"
},
"bin": {
"protractor": "bin/protractor",
"webdriver-manager": "bin/webdriver-manager"
},
"main": "lib/protractor.js",
"scripts": {
"pretest": "jshint lib spec scripts",
"test": "node scripts/test.js",
"start": "node testapp/scripts/web-server.js"
},
"license": "MIT",
"version": "2.0.0",
"gitHead": "1d8f14eb7e3fd7c8607ef1ffa2d6c0b29cc802b1",
"bugs": {
"url": "https://github.com/angular/protractor/issues"
},
"_id": "protractor@2.0.0",
"_shasum": "2f96219bb4517006eaadd5757a06608630464ebc",
"_from": "protractor@*",
"_npmVersion": "1.4.28",
"_npmUser": {
"name": "angularcore",
"email": "angular-core+npm@google.com"
},
"maintainers": [
{
"name": "juliemr",
"email": "ju.ralph@gmail.com"
},
{
"name": "angularcore",
"email": "angular-core+npm@google.com"
}
],
"dist": {
"shasum": "2f96219bb4517006eaadd5757a06608630464ebc",
"tarball": "http://registry.npmjs.org/protractor/-/protractor-2.0.0.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/protractor/-/protractor-2.0.0.tgz",
"readme": "ERROR: No README data found!"
}

** Node.JS 的异常**

Failures:

1) Login onboarding - screen 2
Message:
TypeError: Cannot read property 'click' of undefined
Stacktrace:
TypeError: Cannot read property 'click' of undefined
at [object Object].<anonymous> (C:\Users\idan\AppData\Roaming\npm\node_modul
es\protractor\example\demo.js:49:100)
at C:\Users\idan\AppData\Roaming\npm\node_modules\protractor\node_modules\ja
sminewd\index.js:94:14
at [object Object].promise.ControlFlow.runInFrame_ (C:\Users\idan\AppData\Ro
aming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\
promise.js:1877:20)
at [object Object].promise.ControlFlow.runEventLoop_ (C:\Users\idan\AppData\
Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdrive
r\promise.js:1755:8)
at [object Object].<anonymous> (C:\Users\idan\AppData\Roaming\npm\node_modul
es\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2056:12)
at goog.async.run.processWorkQueue (C:\Users\idan\AppData\Roaming\npm\node_m
odules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21)
From: Task: Asynchronous test function: it()
at [object Object].<anonymous> (C:\Users\idan\AppData\Roaming\npm\node_modul
es\protractor\node_modules\jasminewd\index.js:93:33)
at [object Object].<anonymous> (C:\Users\idan\AppData\Roaming\npm\node_modul
es\protractor\node_modules\minijasminenode\lib\async-callback.js:45:37)
at [object Object].jasmine.Block.execute (C:\Users\idan\AppData\Roaming\npm\
node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:1174:1
7)
at [object Object].jasmine.Queue.next_ (C:\Users\idan\AppData\Roaming\npm\no
de_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2209:31)

at onComplete (C:\Users\idan\AppData\Roaming\npm\node_modules\protractor\nod
e_modules\minijasminenode\lib\jasmine-1.3.1.js:2205:18)
at [object Object].jasmine.WaitsForBlock.execute (C:\Users\idan\AppData\Roam
ing\npm\node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.j
s:2704:5)
at [object Object]._onTimeout (C:\Users\idan\AppData\Roaming\npm\node_module
s\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:2718:12)
Error
at [object Object].<anonymous> (C:\Users\idan\AppData\Roaming\npm\node_modul
es\protractor\example\demo.js:47:2)
at [object Object].jasmine.Env.describe_ (C:\Users\idan\AppData\Roaming\npm\
node_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:913:21
)
at [object Object].jasmine.Env.describe (C:\Users\idan\AppData\Roaming\npm\n
ode_modules\protractor\node_modules\minijasminenode\lib\jasmine-1.3.1.js:898:15)

at describe (C:\Users\idan\AppData\Roaming\npm\node_modules\protractor\node_
modules\minijasminenode\lib\jasmine-1.3.1.js:658:27)
at Object.<anonymous> (C:\Users\idan\AppData\Roaming\npm\node_modules\protra
ctor\example\demo.js:3:1)

Finished in 17.105 seconds
3 tests, 3 assertions, 1 failure

[launcher] 0 instance(s) of WebDriver still running
[launcher] chrome #1 failed 1 test(s)
[launcher] overall: 1 failed spec(s)
[launcher] Process exited with error code 1

最佳答案

您输入的 radio 类型似乎缺少行业类别。

添加后测试应该可以工作,这里是 link下面的代码在 jsfiddle 中测试,它使用 Jasmine 和 jqLit​​e 选择器,但您得到了图片。

describe('Test with industry class',function(){
beforeEach(module('testApp'));

var element, scope;

beforeEach(inject(function($rootScope, $compile) {
element = angular.element('<div><input ng-attr-id="industry_{{$index}}" ng-attr-value="{{$index}}" ng-model="stateData.currentIndustryIndex" type="radio" class="industry ng-pristine ng-valid" name="00K" id="industry_0" value="0"></div>');
scope = $rootScope;
$compile(element)(scope);
scope.$digest();
}));

it("should contain a input of type radio element with a class of industry", function() {
expect(element.find('.industry').length).toEqual(1);
});

});

关于angularjs - Protractor "Can' t 读取未定义的属性 'click'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29626094/

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