我正在尝试创建一个基类来在click和select方法中添加显式权重。这是我到目前为止已经尝试过的代码,但在Click.on()上得到错误:
import { Enter, Click } from "serenity-js/lib/screenplay-protractor";
import { by } from "protractor";
import { protractor, browser } from 'protractor';
var EC = protractor.ExpectedConditions;
export class wait{
constructor() {
}
ElementVisibility(selector){
browser.driver.wait(function() {
return browser.driver.isElementPresent(by.xpath(selector));
});
}
Click(selector) {
this.ElementVisibility(selector).Click.on()
}
}另外,当我导入到另一个页面时,这是正确的方法吗?对不起,我刚开始使用typescript,它给出了错误,无法识别Click方法
import { Task, step, PerformsTasks } from "serenity-js/lib/screenplay";
import { Enter, Click } from "serenity-js/lib/screenplay-protractor";
import { CheckoutPageMap } from "../interactions/element-mappings/CheckoutPageMap";
import { wait } from "../interactions/element-mappings/wait";
export class FillPaymentMethod implements Task {
static called(): FillPaymentMethod {
return new FillPaymentMethod();
}
@step('{0} Select Shipping Method - Bruno selects for an item in men section')
performAs(actor: PerformsTasks): PromiseLike<void> {
return actor.attemptsTo(
Click.on(CheckoutPageMap.radioCreditCard),
Enter.theValue('Bruno Sacco').into(CheckoutPageMap.textCreditCardHolderName),
Enter.theValue('4032039926075500').into(CheckoutPageMap.textCreditCardNumber),
Enter.theValue('123').into(CheckoutPageMap.textCreditCardCvv),
wait.Click('//*[@id="card_month"]/option[.=" 09"]'),
//Click.on(CheckoutPageMap.dropDownCreditCardMonth), // TO-DO: optimize choosing option from dropdown from properties file
Click.on(CheckoutPageMap.dropDownCreditCardYear) // TO-DO: optimize choosing option from dropdown from properties file
);
}
};获取此错误-类型'typeof wait‘上不存在ts属性'Click’。
发布于 2018-02-01 11:45:54
给出一个代码示例,但我不确定您的locator参数值是否与Protractor定位器兼容。
import { Enter, Click } from "serenity-js/lib/screenplay-protractor";
import { protractor, element } from "protractor";
var EC = protractor.ExpectedConditions;
export class Wait{
constructor() {
}
enterValue(text:any, locator:any) {
//Enter.theValue comes from serenity
return browser.wait(EC.elementToBeClickable(element(locator)), 5000)
.then(function(){
return Enter.theValue(text).into(locator);
});
}
clickOn(locator: any): any {
//Click.on comes from serenity
return browser.wait(EC.elementToBeClickable(element(locator)), 5000)
.then(function(){
return Click.on(locator);
});
}
};https://stackoverflow.com/questions/48551528
复制相似问题