由于错误,无法使用以下代码选择菜单/子菜单。调试和 运行时错误。请告知。
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"> </span> <span class="anchor view_results" title="View">View</span> </div>
</li>
<li>
<hr>
</li>
<li>
<div class="menu_item emailSelectOptions"> <span class="spacer"> </span> <span class="anchor" title="Email">Email</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor change_sec" title="Modify Security">Modify Security</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor" title="Package">Package</span> <span class="ui-icon ui-icon-triangle-1-e right_icon"> </span> </div>
<ul class="submenu">
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor addToPackage" title="Add To Package">Add To Package</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor archivePackage" title="Archive Package">Archive Package</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor createPackage" title="Create Package">Create Package</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor cleanup" title="Cleanup">Cleanup</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor clone" title="Clone">Clone</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor sendSubmission" title="Send Submission">Send Submission</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor switchPackageType" title="Switch Package Type">Switch Package Type</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor resetPackage" title="Reset Package">Reset Package</span> </div>
</li>
</ul>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor print_results" title="Print">Print</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor download_results" title="Save a Copy">Save a Copy</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </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"> </span> <span class="anchor" title="Workflow">Workflow</span> <span class="ui-icon ui-icon-triangle-1-e right_icon"> </span> </div>
<ul class="submenu">
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor assign_workflow" title="Assign Workflow">Assign Workflow</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor reassignWfDocument" title="Change Assignee">Change Assignee</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor multiPrompt" title="Multi-Prompt">Multi-Prompt</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor resetWfDocuments" title="Restart Workflow">Restart Workflow</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </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"> </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"> </span> </div>
<ul class="submenu">
<li>
<div class="menu_item"> <span class="spacer"> </span> <span class="anchor assign_workflowToBatch" title="Change Workflow">Change Workflow</span> </div>
</li>
<li>
<div class="menu_item"> <span class="spacer"> </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"> </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"> </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)