【发布时间】:2023-03-07 04:46:02
【问题描述】:
如何在循环中向sendKeys(value) 发送值?
我尝试了不同的选项来弄清楚它,但没有运气。
Numbers.ts
export const Numbers = {
1: '777',
2: '777',
3: '777'
};
Texts.ts
export const Texts = {
1: '111',
2: '222',
3: '333'
};
代码.ts
public async readFromFile(): Promise<void> {
const numbers: object = Numbers;
const texts: object = Texts;
function* generatorNumbersAndTexts(objectNumbers, objectTexts) {
let i: string;
let j: string;
for (i in objectNumbers) {
for (j in objectTexts) {
if (objectNumbers.hasOwnProperty(i) && objectTexts.hasOwnProperty(j)) {
yield i;
yield j;
}
}
}
}
for (let indexI of generatorNumbersAndTexts(numbers, texts)) {
for (let indexJ of generatorNumbersAndTexts(numbers, texts)) {
texts.hasOwnProperty(indexJ)) {
await this.clickSendMessage();
try {
await this.typeContacts(numbers[indexI]);
} catch (e) {
throw new Error(`There is no phone field ${e}`);
}
await this.typeMessage(texts[indexJ]);
await this.sendMessage();
}
}
}
方法
这些是在 readFromFile 方法中使用的方法。
public async typeContacts(numbers: string): Promise<void> {
await this.contactField.sendKeys(numbers + ';');
}
public async typeMessage(text: string): Promise<void> {
await this.messageField.type(text);
}
public async type(text: string): Promise<void> {
await this.clearInput();
await this.sendKeys(text);
}
看来这可能是 Protractor 承诺的问题。
【问题讨论】:
-
你在哪个元素上执行
sendkeys()?this.sendKeys(text);sendKeys 必须有一个元素才能执行操作 -
@BenMohorc
this.contactField = new Fragment($('div > input[aria-owns="contact-list"]'));
标签: javascript typescript asynchronous protractor