【问题标题】:Safari13 webdriverio click issueSafari13 webdriverio点击问题
【发布时间】:2019-12-19 00:28:38
【问题描述】:

将 safari 12 更新到 safari 13 后,我在 webdriverio 中遇到了点击问题。
下面是错误。

元素不可交互:未知错误

我尝试在挂钩 wdio.conf.js 之前使用 browser.addCommand 添加自定义方法,但 webdriver 抛出错误 -

jsClick 不是函数

下面是添加到 before 钩子的自定义方法。我之前在浏览器范围内添加了一些自定义方法,效果很好。我希望“点击”功能适用于所有元素/选择器。我不想将选择器作为参数/参数传递给新的点击功能。我希望 webdriverio 像 $(selector).click() 一样工作。

browser.addCommand(
      'jsClick',
      function() {
        const selector = this.selector
        browser.execute(function(selector) {
          document.querySelector(selector).click()
        }, selector)
      },
      true
    )

任何 cmets/建议都会有所帮助。 谢谢!

【问题讨论】:

    标签: javascript selenium-webdriver webdriver-io


    【解决方案1】:

    这是 Safari 13 网络驱动程序的一个已知问题。有人说它正在使用 Safari 技术预览版:https://github.com/webdriverio/webdriverio/issues/4565#issuecomment-560542745

    但我无法确认。

    【讨论】:

      【解决方案2】:

      这是适用于 Safari13 的点击问题的解决方案。添加这个 wdio.conf 对我有用 -

      browser.addCommand(
            "jsClick",
            function(childNode) {
              const selector = this.selector;
              browser.execute(
                function(selector, childNode) {
                  var targetNode = "";
                  if (childNode) {
                    targetNode = document.querySelectorAll(selector)[childNode];
                  } else {
                    targetNode = document.querySelector(selector);
                  }
                  //--- Simulate all possible natural mouse-click sequence.
                  simulateEvent(targetNode, "mouseover");
                  simulateEvent(targetNode, "mousedown");
                  simulateEvent(targetNode, "mouseup");
                  simulateEvent(targetNode, "click");
      
                  function simulateEvent(node, eventType) {
                    var clickEvent = new MouseEvent(eventType, {
                      bubbles: true,
                      cancelable: true
                    });
                    node.dispatchEvent(clickEvent);
                  }
                },
                selector,
                childNode
              );
            },
            true
          );
      

      【讨论】:

        猜你喜欢
        • 2019-12-19
        • 1970-01-01
        • 2021-11-01
        • 2021-08-28
        • 2018-02-17
        • 2016-07-18
        • 2020-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多