【问题标题】:Protractor (node:9208) UnhandledPromiseRejectionWarning: ElementNotVisibleError: element not interactable. But still working intermittently量角器(节点:9208)UnhandledPromiseRejectionWarning:ElementNotVisibleError:元素不可交互。但仍然断断续续地工作
【发布时间】:2018-10-05 15:02:44
【问题描述】:

我正在尝试使用量角器单击一个元素,但出现异常

(node:9208) UnhandledPromiseRejectionWarning: ElementNotVisibleError: element not interactable
  (Session info: chrome=69.0.3497.92)
  (Driver info: chromedriver=2.42.591088 (7b2b2dca23cca0862f674758c9a3933e685c27d5),platform=Windows NT 6.1.7601 SP1 x86_64)
    at Object.checkLegacyResponse (........\node_modules\selenium-webdriver\lib\error.js:546:15)
    at parseHttpResponse (........\node_modules\selenium-webdriver\lib\http.js:509:13)
    at doSend.then.response (........\node_modules\selenium-webdriver\lib\http.js:441:30)
    at process._tickCallback (internal/process/next_tick.js:68:7)Error
    at ElementArrayFinder.applyAction_ (........\node_modules\protractor\built\element.js:459:27)
    at ElementArrayFinder.(anonymous function).args [as click] (........\node_modules\protractor\built\element.js:91:29)
    at ElementFinder.(anonymous function).args [as click] (........\node_modules\protractor\built\element.js:831:22)
    at selenMethods.clickElement (........\folders\utils\SelenMethods.js:49:26)
    at ........\folders\pages\homePage.js:28:29
    at process._tickCallback (internal/process/next_tick.js:68:7)

以下是 HTML 片段

<a href="#inviteUser" id="menuBtnAdduser" class="list-group-item list-group-child-item close-menu-item list-item-heading ng-scope" translate="templates.usersTable.addUser" xpath="1"><span class="ng-scope">Invite new user</span></a>

下面是点击元素的量角器代码

var EC = protractor.ExpectedConditions;
browser.wait(EC.elementToBeClickable(elemen), 4000);
element(by.xpath("//a[@id='menuBtnAdduser']/span[contains(text(),'Invite new user')]"));

【问题讨论】:

  • 嗨@sriam,您是否尝试直接单击链接而不是跨度。我还看到您正在等待一个元素,但它是您发布的那个吗?尝试使用 waitForElementToBeVIsible() 可能会有所帮助。
  • 元素是可见的,我也能够突出显示它。但错误表明该元素不可交互。
  • 嗨@siram,尝试直接点击链接:element(by.xpath("//a[@id='menuBtnAdduser']")
  • 我试过了,它偶尔会工作,错误说“元素不可交互”并且可用的文档非常少......

标签: javascript selenium selenium-webdriver protractor webdriverwait


【解决方案1】:

要单击所需的元素,您可以使用以下解决方案:

var EC = protractor.ExpectedConditions;
browser.wait(EC.elementToBeClickable(elemen), 4000);
element(by.xpath("//a[@class='list-group-item list-group-child-item close-menu-item list-item-heading ng-scope' and @id='menuBtnAdduser']/span[@class='ng-scope' and contains(.,'Invite new user')]"));

【讨论】:

  • 嗨 Debanjan,感谢您的回复。 xpath 没有问题。我能够找到该元素并以多种方式突出显示它,但量角器失败并出现错误元素不可交互。
  • @sriramnarayana:我面临同样的问题。你的解决了吗?
【解决方案2】:

尝试使用 Href 进行点击:

 element(by.cssContainingText('[href*="#inviteUser"]', 'Invite new user'))

【讨论】:

    猜你喜欢
    • 2014-03-09
    • 1970-01-01
    • 2020-05-07
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多