测试一些东西:选择器需要是 typeof `string` 或 `function`

Posted

技术标签:

【中文标题】测试一些东西:选择器需要是 typeof `string` 或 `function`【英文标题】:test something: selector needs to be typeof `string` or `function` 【发布时间】:2022-01-05 20:31:19 【问题描述】:

我想在 Visual Studio Code/Codeceptjs 上编写测试。简而言之,我的代码在这里:

let amazonWebKeys=require('./amazonKeys/amazonwebkeys.json');

module.exports = function() 
  return actor(

    buttons:
       acceptcookie :  '//input[@id="sp-cc-accept"]'   //accept cookie button  
                  
    ,

    getParemeters : function(keys)
      return amazonWebKeys[keys];
    ,

    WebTest:function()
      this.amOnPage(this.getParemeters("url")); //go to website
      this.click(this.buttons.acceptcookie); //accept cookie
     
  );

但是错误信息。为什么选择器需要是 typeof 'string' 或 'function.我可以为这个问题做些什么:

1) WebTest
       test something:
     selector needs to be typeof `string` or `function`
      at Browser.findElements (node_modules\webdriverio\build\utils\index.js:176:11)        
      at Browser.$$ (node_modules\webdriverio\build\commands\browser\$$.js:6:44)
      at Browser.wrapCommandFn (node_modules\@wdio\utils\build\shim.js:63:38)

您可以在场景步骤中看到 click() 为空。

Scenario Steps:
  - I.click() at Actor.WebTest (.\steps_file.js:21:12)
  - I.amOnPage("https://www.amazon.com.tr/") at Actor.WebTest (.\steps_file.js:20:12) 

提前致谢

【问题讨论】:

表示选择器未定义,请调试代码 感谢您的回答。我很有帮助。 【参考方案1】:

定位器出错。尝试不带@ 符号的定位器名称input [id = "sp-cc-accept"]。 或者就像这样this.click('#sp-cc-accept')。 并阅读更多doc

【讨论】:

感谢您的回答。我用另一种方式解决了我的问题。

以上是关于测试一些东西:选择器需要是 typeof `string` 或 `function`的主要内容,如果未能解决你的问题,请参考以下文章

字符串与json互转

js删除局部变量的实现方法

选择NoSQL内存解决方案:性能测试实践

node.js 表达 jsonp 返回 typeof

instanceof和typeof运算符的区别详解

判断一个变量是数组类型的方法