失败:旧元素引用:元素未附加到页面文档(会话信息:chrome = 78.0.3904.108)

时间:2019-12-09 12:17:12

标签: typescript selenium-webdriver protractor

由于错误,无法使用以下代码选择菜单/子菜单。调试和 运行时错误。请告知。

HTML:

<dl class="list_action dropdown shadow nested" xpath="1">
    <dt>
        <span class="parent"> Actions <span class="dropdown_arrow ui-icon ui-icon-triangle-1-s"></span> </span>
    </dt>
    <dd>
        <ul class="children">
            <li>
                <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor view_results" title="View">View</span> </div>
            </li>
            <li>
                <hr>
            </li>
            <li>
                <div class="menu_item emailSelectOptions"> <span class="spacer">&nbsp;</span> <span class="anchor" title="Email">Email</span> </div>
            </li>
            <li>
                <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor change_sec" title="Modify Security">Modify Security</span> </div>
            </li>
            <li>
                <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor" title="Package">Package</span> <span class="ui-icon ui-icon-triangle-1-e right_icon">&nbsp;</span> </div>
                <ul class="submenu">
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor addToPackage" title="Add To Package">Add To Package</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor archivePackage" title="Archive Package">Archive Package</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor createPackage" title="Create Package">Create Package</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor cleanup" title="Cleanup">Cleanup</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor clone" title="Clone">Clone</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor sendSubmission" title="Send Submission">Send Submission</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor switchPackageType" title="Switch Package Type">Switch Package Type</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor resetPackage" title="Reset Package">Reset Package</span> </div>
                    </li>
                </ul>
            </li>
            <li>
                <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor print_results" title="Print">Print</span> </div>
            </li>
            <li>
                <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor download_results" title="Save a Copy">Save a Copy</span> </div>
            </li>
            <li>
                <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor due_date_results" title="Set Due Date">Set Due Date</span> </div>
            </li>
            <li>
                <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor" title="Workflow">Workflow</span> <span class="ui-icon ui-icon-triangle-1-e right_icon">&nbsp;</span> </div>
                <ul class="submenu">
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor assign_workflow" title="Assign Workflow">Assign Workflow</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor reassignWfDocument" title="Change Assignee">Change Assignee</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor multiPrompt" title="Multi-Prompt">Multi-Prompt</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor resetWfDocuments" title="Restart Workflow">Restart Workflow</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor terminateItems" title="Terminate Workflow">Terminate Workflow</span> </div>
                    </li>
                </ul>
            </li>
            <li>
                <hr>
            </li>
            <li>
                <div class="menu_item" data-hasseparator="1"> <span class="spacer">&nbsp;</span> <span class="anchor" title="Performs the selected action on all items in search results, not just the selected items or items on the current page.">Batch Actions</span> <span class="ui-icon ui-icon-triangle-1-e right_icon">&nbsp;</span> </div>
                <ul class="submenu">
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor assign_workflowToBatch" title="Change Workflow">Change Workflow</span> </div>
                    </li>
                    <li>
                        <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor reset_workflowToBatch" title="Restart Workflow">Restart Workflow</span> </div>
                    </li>
                </ul>
            </li>
            <li>
                <hr>
            </li>
            <li>
                <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor delete_results" title="Delete Package">Delete Package</span> </div>
            </li>
            <li>
                <hr>
            </li>
            <li>
                <div class="menu_item"> <span class="spacer">&nbsp;</span> <span class="anchor column_chooser" title="Column Chooser">Column Chooser</span> </div>
            </li>
        </ul>
    </dd>
</dl>

代码:

this.waitForPresence();
let dts = this.component.all(by.css("dl > dt")).get(0);
let dds = this.component.all(by.css("dl > dd")).get(0);
const menuTreeArr = menuTree.split(",");
await dts
  .element(by.xpath(".//span[contains(text(),'" + menuName + "')]"))
  .click()
  .then(async () => {
    for (var i = 0; i < menuTreeArr.length; i++) {
      await browser
        .actions()
        .mouseMove(
          dds.element(
            by.xpath(".//span[normalize-space(text())= '" + menuTreeArr[0] + "']")
          )
        )
        .perform();
    }
  });

await browser
  .actions()
  .mouseMove(
    dds
      .all(
        by.xpath(".//span[normalize-space(text())=  '" + menuItem + "']")
      )
      .get(subIndex)
  )
  .perform()
  .then(async () => {
    await browser
      .actions()
      .mouseMove(
        dds
          .all(
            by.xpath(".//span[normalize-space(text())=  '" + menuItem + "']")
          )
          .get(subIndex)
      )
      .click()
      .perform();
  });

消息:

Failed: stale element reference: element is not attached to the page document
      (Session info: chrome=78.0.3904.108)
      (Driver info: chromedriver=78.0.3904.105 (60e2d8774a8151efa6a00b1f358371b1e0e07ee2-refs/branch-heads/3904@{#877}),platform=Windows NT 10.0.17134 x86_64)
  Stack:
    StaleElementReferenceError: stale element reference: element is not attached to the page document
      (Session info: chrome=78.0.3904.108)
      (Driver info: chromedriver=78.0.3904.105 (60e2d8774a8151efa6a00b1f358371b1e0e07ee2-refs/branch-heads/3904@{#877}),platform=Windows NT 10.0.17134 x86_64)
        at Object.checkLegacyResponse (C:\Users\shreyas.murali\source\repos\DocStarQaAutomation\node_modules\selenium-webdriver\lib\error.js:546:15)
        at parseHttpResponse (C:\Users\shreyas.murali\source\repos\DocStarQaAutomation\node_modules\selenium-webdriver\lib\http.js:509:13)
        at doSend.then.response (C:\Users\shreyas.murali\source\repos\DocStarQaAutomation\node_modules\selenium-webdriver\lib\http.js:441:30)
        at process._tickCallback (internal/process/next_tick.js:68:7)
    From: Task: WebElement.click()
        at Driver.schedule (C:\Users\shreyas.murali\source\repos\DocStarQaAutomation\node_modules\selenium-webdriver\lib\webdriver.js:807:17)

0 个答案:

没有答案