首页 > 解决方案 > Protractor browser.executeScript 在参数列表后抛出“SyntaxError: missing )”异常

问题描述

背景资料

我无法在我目前正在自动化的 angular material 2 设计网站上单击某些元素。因此,我必须实现使用 Protractor API 中提供的 JavaScriptExecutor 的解决方法。但是,当我想查询 dom 并使用 Javascript 单击元素时遇到问题。

什么不起作用

  hardClickElement(by.css("input[placeholder='Search Accounts']"));

  function hardClickElement(by) {
    var locator = by.toString();
    if (locator.includes("css")) {
      console.log(`document.querySelector('${by.value}').click()`);
      browser.executeScript(`document.querySelector('${by.value}').click()`);
    }
  }

有什么作用

hardClickElement(by.css(".mat-menu-content button"));

  function hardClickElement(by) {
    var locator = by.toString();
    if (locator.includes("css")) {
      console.log(`document.querySelector('${by.value}').click()`);
      browser.executeScript(`document.querySelector('${by.value}').click()`);
    }
  }

所以...

所以我的问题是为什么我会得到例外

失败:SyntaxError: missing ) 在参数列表之后

执行第一个代码块时?

标签: javascriptdomprotractordomdocument

解决方案


这将解决问题:

hardClickElement(by.css('input[placeholder="Search Accounts"]'));

在单引号内使用双引号


推荐阅读