【问题标题】:How to perform a JavaScript click using WebdriverIO v5?如何使用 WebdriverIO v5 执行 JavaScript 点击?
【发布时间】:2019-12-19 21:30:03
【问题描述】:

我正在尝试使用 WebdriverIO v5 提供的 addCommand 对复选框执行 JavaScript 单击(请注意,我不打算使用 WebdriverIO 的标准单击)

我创建了以下命令并将其添加到我的 wdio 文件中:

browser.addCommand("jsClick", function(selector) {
    browser.execute("arguments[0].click();", selector);
});

尝试在特定元素上使用上述命令,但没有成功:

const clickByXpathSelector = $("//div[@id='checkboxes']//input[@value='option-1']");

browser.jsClick("//div[@id='checkboxes']//input[@value='option-1']");
clickByXpathSelector.jsClick();

使用下面的命令,我似乎得到了以下异常:

browser.jsClick("//div[@id='checkboxes']//input[@value='option-1']");
clickByXpathSelector.jsClick();


unknown error: arguments[0].click is not a function

有什么想法吗?

【问题讨论】:

标签: javascript selenium selenium-webdriver webdriver-io


【解决方案1】:

试试这个:-

const element = $("#submit");
browser.execute("arguments[0].click();", element);

【讨论】:

    【解决方案2】:

    你不需要调用 arguments[0] 因为它是 JS,你只需要在它上面执行一个函数。所以"arguments[0].click();", element 来到function(element) {element.click();}

    这是 TypeScript 中 wdio 5 命令的示例:

    browser.addCommand(
      "jsClick",
      function(this: any) {
        browser.execute(function(element) {
          element.click();
        }, this);
      },
      true,
    );
    

    【讨论】:

      猜你喜欢
      • 2021-11-01
      • 1970-01-01
      • 2021-08-28
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 2019-03-13
      相关资源
      最近更新 更多