Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic framework 输入类型为带Chrome的数字时如何使用sendkeys_Ionic Framework_Input_Protractor_Numbers_Sendkeys - Fatal编程技术网

Ionic framework 输入类型为带Chrome的数字时如何使用sendkeys

Ionic framework 输入类型为带Chrome的数字时如何使用sendkeys,ionic-framework,input,protractor,numbers,sendkeys,Ionic Framework,Input,Protractor,Numbers,Sendkeys,HTML <ion-input [(ngModel)]="login.username" ngControl="username1" type="number" #username1="ngForm" id="userName" required> </ion-input> 已找到元素,但未在字段中输入文本。如果我将元素更改为type=“text”,则量角器命令有效。页面视图为“e”,无法清除 其次,如果我像这样发送字符串:“we2124will”,实际发送的数据是“2

HTML

<ion-input [(ngModel)]="login.username" ngControl="username1" type="number" #username1="ngForm" id="userName" required>
</ion-input>
已找到元素,但未在字段中输入文本。如果我将元素更改为type=“text”,则量角器命令有效。页面视图为“e”,无法清除

其次,如果我像这样发送字符串:“we2124will”,实际发送的数据是“2124”,来自getAttribute(“value”)的结果是2124

第三,即使我将sendKeys更改为number,结果也不是完整的数字字符串。例如:

失败:

1) Login page should input username and password
 Message:
   Expected '125' to equal '12345'.
 Stack:
     Error: Failed expectation

缺少一些数字。

作为一种解决方法,您可以引入一个可重用函数,通过在发送每个键之间添加延迟来执行慢速类型

首先,添加一个,将其放入
onPrepare()

然后,创建一个可重用函数:

function slowSendKeys(elm, text) {
    var actions = browser.actions();
    for (var i = 0, len = text.length; i < len; i++) {
        actions = actions.sendKeys(str[i]).sleep(300);
    }
    return actions.perform();
}

作为一种解决方法,您可以引入一个可重用函数,通过在发送每个键之间添加延迟来执行慢速类型

首先,添加一个,将其放入
onPrepare()

然后,创建一个可重用函数:

function slowSendKeys(elm, text) {
    var actions = browser.actions();
    for (var i = 0, len = text.length; i < len; i++) {
        actions = actions.sendKeys(str[i]).sleep(300);
    }
    return actions.perform();
}

您使用的量角器是什么版本的

不确定这是否是问题所在,但请尝试通过ng模型获取元素

var elem = element(by.model('login.username'));
elem.sendKeys('error');
expect(elem.getAttribute("value")).toEqual("error");
elem.clear();
elem.sendKeys('12345');
expect(elem.getAttribute("value")).toEqual("12345");

您使用的量角器是什么版本的

不确定这是否是问题所在,但请尝试通过ng模型获取元素

var elem = element(by.model('login.username'));
elem.sendKeys('error');
expect(elem.getAttribute("value")).toEqual("error");
elem.clear();
elem.sendKeys('12345');
expect(elem.getAttribute("value")).toEqual("12345");

由于您使用的是
,因此实际的HTML
标记将嵌套在其中,并且它没有id属性。其结果是可能会选择错误的元素

尝试以下操作以获取嵌套的输入标记:

let username = element(by.id('userName')).all(by.tagName('input')).first();
username.sendKeys('fakeUser');

这对我很有用。

因为您使用的是
,所以实际的HTML
标记将嵌套在其中,并且不会有id属性。其结果是可能会选择错误的元素

尝试以下操作以获取嵌套的输入标记:

let username = element(by.id('userName')).all(by.tagName('input')).first();
username.sendKeys('fakeUser');

这对我来说很有效。

这在Firefox和Chrome中的表现是否相同?另外,如果您尝试使用最新的量角器版本会怎么样?我只使用Chrome进行测试。量角器版本是3.3.0。这在Firefox和Chrome中的表现是否相同?另外,如果您尝试使用最新的量角器版本会怎么样?我只使用Chrome进行测试。量角器版本是3.3.0。我使用了我以前尝试过的量角器3.3.0.model,但失败的原因如下:`-失败:未知错误:angular不是(会话信息:chrome=49.0.2623.112)(驱动程序信息:chromedriver=2.21.371459`我使用了我以前尝试过的量角器3.3.0.model,但失败的原因如下:`-失败:未知错误:angular不是(会话信息:chrome=49.0.2623.112)(驱动程序信息:chromedriver=2.21.371459`我对量角器不熟悉,有两件事我忘记了:1.我正在测试ionic 2 ans是否使用typescript。当我运行上述两个函数时,会发生以下故障:类型“ActionSequence”上不存在属性“sleep”。2.当我只使用第一行用法时,会发生以下故障:找不到元素using locator:By(css选择器,离子输入#用户名).你有什么建议吗?我是一个新来的量角器,有两件事我忘记了:1.我正在测试ionic 2 ans使用typescript。当我运行上面的两个函数时。发生这些故障:类型“ActionSequence”上不存在属性“sleep”。2.当我只使用第一行用法时,会发生以下故障:使用locat找不到元素或者:通过(css选择器,离子输入#用户名)。你有什么建议吗?