首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >量角器宁静中的显式等待

量角器宁静中的显式等待
EN

Stack Overflow用户
提问于 2018-02-01 05:12:53
回答 1查看 493关注 0票数 0

我正在尝试创建一个基类来在click和select方法中添加显式权重。这是我到目前为止已经尝试过的代码,但在Click.on()上得到错误:

代码语言:javascript
复制
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方法

代码语言:javascript
复制
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’。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-01 11:45:54

给出一个代码示例,但我不确定您的locator参数值是否与Protractor定位器兼容。

代码语言:javascript
复制
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);
        });
    }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48551528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档