【问题标题】:Passing string arguments to TestCafe Selector in page model在页面模型中将字符串参数传递给 TestCafe 选择器
【发布时间】:2022-01-05 10:56:50
【问题描述】:

我有一个类似于link 的问题,我认为在那个链接中人们正在使用打字稿文件。我已经在 js 文件中定义了选择器,我尝试这样做:

class Page {
   constructor(sampleText){
       this.optionsButton = Selector('#options').withText(sampleText);
   }
}
export default new Page();

但是当我尝试从测试文件中调用选择器时

test('sampleTest', async t=> {
    await t.click(Page.optionsButton('sometext');
)}

我遇到了一个错误:

错误由于以下错误而无法准备测试:“文本” 参数(未定义)不是预期的类型(字符串或常规 表达式)。

如何解决这个问题?

【问题讨论】:

    标签: javascript testing automated-tests parameter-passing testcafe


    【解决方案1】:

    optionsButton 是一个属性,它的值是使用构造函数定义的,因此参数只能在您创建对象时传递,如下所示:

    new Page('sometext');
    

    如果在Page类中写一个基于参数返回选择器的方法会更好:

    class Page {
      optionsButton(opt) {
        return Selector('#options').withText(opt);
      }
    }
    
    export default new Page();
    

    【讨论】:

    • 非常感谢,这正是我所需要的。目前我无法测试它,因为测试环境不工作
    • '@Romer' 谢谢,我想确认您的解决方案完美运行
    猜你喜欢
    • 2019-12-03
    • 2019-06-19
    • 2012-08-31
    • 2017-09-01
    • 1970-01-01
    • 2021-09-02
    相关资源
    最近更新 更多