我一直在尝试在量角器中运行此代码,但是我继续遇到此错误,我也找不到一种方法来获取ANPR_BOX_INPUT文本值。
value:managedPromise :: 871 {[[[Promisestatus]]:"待处理"} 失败 - 当屏幕包含ANPR请求时,应具有有效的许可证号板 套房失败:ANPR屏幕内容
Chrome版本:58.0.3029.110(64位(依赖性:"量角器":" 5.1.2","茉莉核":" 〜2.4.1","业力贾斯汀":"^1.1.0","业力 - 贾斯汀 - html-reporter":"^0.2.2","@types/jasmine":" 2.5.36"
描述('anpr屏幕内容',function(({
it('should have a valid license number plate when screen contains as ANPR request', function () {
var base_keyboard_ok = browser.driver.findElement(by.id('base-keyboard-ok'));
var anpr_box_input = browser.driver.findElement(by.className('anpr-box-input'));
//anpr_box_input.clear().then(function() { anpr_box_input.sendKeys('999'); }); tryed it before, didn't work
anpr_box_input.clear().then(function() { anpr_box_input.setAttribute("value", "459"); });
base_keyboard_ok.click();
/* didn't work
anpr_box_input.getText().then(function(text) {
console.log("AQUI: " + text);
});
*/
//console.log("Value: " + anpr_box_input.getAttribute('value')); didn't work
//working on..
anpr_box_input.getAttribute('value').then(function(text) {
console.log("Value: " + text);
});
//so i'll need something like
expect(anpr_box_input.text).toEqual("1234");
});
}(;
基于提供的信息,HTML无法用
设置元素的值 anpr_box_input.sendKeys('999');
因为它不是input
,而是<div>
。
anpr_box_input.setAttribute("value", "459");
也无效,因为 setAttribute
不是有效的量角命令。您首先需要知道字段的工作原理,我猜是它是一个<div>
元素,反映了包含原始值的另一个字段的值。您需要找到该领域并进行:
-
sendKeys()
-
browser.driver.executeScript('argument[0].setAttribute("name", "value")', element(by.css('#selector').getWebElement())
上方。
我在您的代码上也有1个评论。根据您提供的代码,看起来您有一个角页,但是您使用" vanila" webdriver命令来定位元素,为什么不使用 element(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;
}
}
};