首页 > 解决方案 > 为 WebDriver.IO 页面对象传入一个变量而不是静态字符串

问题描述

我想传递一个方法或一个变量来代替静态定位器 xpath 字符串。

正在运行的代码是:

class LandingPage {
   get enterCoursesButton() { return $('//*[text()="Knock And The Door Will Open"]'); }
   click(pageElementName: string) {
      this.enterCoursesButton.click();
   }
}
export default new LandingPage()

我想做的是从我作为对象存储库创建的数据库中访问我的 XPath 值。所以像这样的东西..

get enterCoursesButton() { return $(Database.getLocator("enterCourses")); }

注意:Database.getLocator("enterCourses") 方法已经返回正确的 xpath。因此,此时只需将返回的 xpath 作为变量传递给 getter 对象,这样它就可以成为一个可操作的 Web 元素。操作意义可以访问click()、setValue()等。

我是一个使用 WebDriver.IO、JavaScript、TypeScript 等的新手。非常感谢任何帮助。

我收到的当前错误是:

在此处输入图像描述

在此处输入图像描述

我用javascript来确定typeof数据类型,肯定是一个:对象。

我注意到的另一个问题是正在使用的 click() 方法是 JQuery,不确定它是否与 WebDriver.IO 不同。但有一次我有一个安装“npm i @types/jquery”的建议出错,所以我安装了它。这是选择单击方法之前的屏幕截图。

在此处输入图像描述

标签: javascripttypescriptgetterwebdriver-iopageobjects

解决方案


推荐阅读