Angularjs 量角器元素文本值sendKeys和属性错误
我一直试图在量角器中运行这段代码,但我不断地遇到这个错误,而且我也找不到一种方法来获取anpr_box_输入文本值 值:ManagedPromise::871{[[PromiseStatus]]:“待定”} 失败-当屏幕包含as ANPR请求时,应具有有效的车牌号 套件失败:ANPR屏幕内容 Chrome版本:58.0.3029.110(64位) 依赖项: “量角器”:“5.1.2”, “茉莉花芯”:“~2.4.1”, “因果报应茉莉”:“^1.1.0”, “karma jasmine html reporter”:“^0.2.2”, “@types/jasmine”:“2.5.36” 描述('ANPR屏幕内容',功能(){Angularjs 量角器元素文本值sendKeys和属性错误,angularjs,angular,attributes,protractor,sendkeys,Angularjs,Angular,Attributes,Protractor,Sendkeys,我一直试图在量角器中运行这段代码,但我不断地遇到这个错误,而且我也找不到一种方法来获取anpr_box_输入文本值 值:ManagedPromise::871{[[PromiseStatus]]:“待定”} 失败-当屏幕包含as ANPR请求时,应具有有效的车牌号 套件失败:ANPR屏幕内容 Chrome版本:58.0.3029.110(64位) 依赖项: “量角器”:“5.1.2”, “茉莉花芯”:“~2.4.1”, “因果报应茉莉”:“^1.1.0”, “karma jasmine html
})) 根据提供的信息和HTML,您不能使用
anpr_box_input.sendKeys('999')代码>因为它不是输入
,所以它是
anpr_box_input.setAttribute(“value”,“459”)代码>也将不起作用,因为setAttribute
不是有效的量角器命令。您首先需要知道字段是如何工作的,我猜它是一个
元素,反映了包含原始值的其他字段的值。您需要找到该字段并执行以下操作:
sendKeys()
browser.driver.executeScript('argument[0].setAttribute(“name”、“value”)”),元素(by.css('#selector').getWebElement())
在上面
我对你的代码还有一点意见。根据你提供的代码,看起来你有一个有角度的页面,但是你正在使用“vanila”webdriver命令来定位元素,为什么不使用元素的量角器语法(by.css(“”))
等等?非常感谢wswebcreation,我将看看您刚才提到的有关vanila webdriver的内容,但我刚刚找到了一个解决方案,如下所示:
it('should have a valid license number plate when screen contains as ANPR request', function () {
var buttonKey;
buttonKey = browser.driver.findElement(by.id('button_A'));
buttonKey.click();
browser.sleep(SLEEP_TIMER);
buttonKey = browser.driver.findElement(by.id('button_B'));
buttonKey.click();
var base_keyboard_ok = browser.driver.findElement(by.id('base-keyboard-ok'));
base_keyboard_ok.click();
var anpr_box_input = browser.driver.findElement(by.className('anpr-box-input'));
anpr_box_input.getAttribute('innerHTML').then(function(anpr) {
console.log("Plate: " + anpr);
expect(globalE2EFunctions.validateAnpr(anpr)).toBe(true);
});
});
module.exports = {
//Still need to implement regex plates validation according to each country patterns
validateAnpr: function(anpr) {
if(anpr != 'CANCEL' && anpr != 'DEL' && anpr != 'OK'){
return true;
} else{
return false;
}
}
};
html的部分也一样:任何帮助都将不胜感激。也尝试过这个,但什么都没有发生。然后(函数(文本){console.log(“值:”+text);});
it('should have a valid license number plate when screen contains as ANPR request', function () {
var buttonKey;
buttonKey = browser.driver.findElement(by.id('button_A'));
buttonKey.click();
browser.sleep(SLEEP_TIMER);
buttonKey = browser.driver.findElement(by.id('button_B'));
buttonKey.click();
var base_keyboard_ok = browser.driver.findElement(by.id('base-keyboard-ok'));
base_keyboard_ok.click();
var anpr_box_input = browser.driver.findElement(by.className('anpr-box-input'));
anpr_box_input.getAttribute('innerHTML').then(function(anpr) {
console.log("Plate: " + anpr);
expect(globalE2EFunctions.validateAnpr(anpr)).toBe(true);
});
});
module.exports = {
//Still need to implement regex plates validation according to each country patterns
validateAnpr: function(anpr) {
if(anpr != 'CANCEL' && anpr != 'DEL' && anpr != 'OK'){
return true;
} else{
return false;
}
}
};