我正在编写一个与Autotask.net网站交互的脚本。我正打开一个新窗口。我试图用我有限的知识来切换框架并切换窗口,但我已经收到了以下例外情况:
StaleElementReferenceException:消息:元素属于与当前帧不同的帧 - 切换到其包含的帧以使用它
这是我的代码:
# Below code WORKS as is.
browser.switch_to_frame('PageContainerFrame')
browser.find_element_by_xpath('//a[contains(., "T20160101.0100")]').click()
#TESTING
browser.switch_to_default_content()
browser.switch_to_window(browser.window_handles[-1])
title=browser.title
newNote=browser.find_element_by_css_selector('#btnNewNote')
actions.click(newNote)
actions.perform()
非常感谢任何帮助 - 谢谢。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div class="toolbar" id="Toolbar" style=
"margin-left:10px;margin-right:10px;margin-bottom:0px;">
<input class="BlueberryImageButton" id="btnNewTicket" name=
"btnNewTicket" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { if (window.opener && window.opener.TicketNew) {window.opener.TicketNew();} else { javascript: if(!PageIsLoading){if(typeof(e) == 'undefined'){e = null;} var eventEx = e || window.event;if(eventEx){eventEx = new Sys.UI.DomEvent(eventEx);} if(eventEx!=null && eventEx.target!=null && (eventEx.target.tagName=='A' || eventEx.target.tagName=='a')){}else{var a='/autotask/views/ServiceDesk/ServiceDeskTicket/service_ticket_new.aspx';var oWin=window.open(a,'TicketNew131218942347837951','height=690,width=940,top=0,left=0,location=0,menubar=0,resizable=1,scrollbars=0,status=0,titlebar=0,toolbar=0',true);if(oWin && !oWin.closed){oWin.focus();}}} } };return false;"
src="/autotask/graphics/icons/content/ticket.png?v=24241" title=
"New Ticket" type="image"><input class="BlueberryImageButton" disabled=
"disabled" id="btnNewTicketDisabled" name="btnNewTicketDisabled"
onclick="return false;" src=
"/autotask/images/icons/NewTicket_disabled.png?v=24241" style=
"cursor: default; display: none;" title="New Ticket" type=
"image"><input class="BlueberryImageButton" id="btnNewTimeEntry" name=
"btnNewTimeEntry" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { popupBroker.timeEntry.open('', '', event); return false; };return false;"
src="/autotask/graphics/icons/content/time.png?v=24241" title=
"Add Time Entry" type="image"><input class="BlueberryImageButton"
disabled="disabled" id="btnNewTimeEntryDisabled" name=
"btnNewTimeEntryDisabled" onclick="return false;" src=
"/autotask/graphics/icons/content/time-disabled.png?v=24241" style=
"cursor: default; display: none;" title=
"You cannot enter time on a ticket with a status of Complete." type=
"image"><input class="BlueberryImageButton" id="btnNewNote" name=
"btnNewNote" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { popupBroker.note.open('', '', event); return false; };return false;"
src="/autotask/graphics/icons/content/note.png?v=24241" title=
"Add Note" type="image"><input class="BlueberryImageButton" id=
"btnNewAttachment" name="btnNewAttachment" onclick=
"window.open('/Mvc/File/Upload.mvc/TicketAttachment?enablePublishing=true&ticketId=107599','TicketAttachment','height=376,width=895,top=0,left=0,location=0,menubar=0,resizable=0,scrollbars=0,status=0,titlebar=0,toolbar=0');return false;"
src="/autotask/graphics/icons/content/attachment.png?v=24241" title=
"Add Attachment" type="image"><input class="BlueberryImageButton" id=
"btnNewCost" name="btnNewCost" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { popupBroker.cost.open('', '', event); return false; };return false;"
src="/autotask/graphics/icons/content/costs.png?v=24241" title=
"Add Charge" type="image"><input class="BlueberryImageButton" id=
"btnNewExpense" name="btnNewExpense" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { popupBroker.expense.open('', '', event); return false; };return false;"
src="/autotask/graphics/icons/content/coin_gold.png?v=24241" title=
"Add Expense" type="image"><input class="BlueberryImageButton" id=
"btnNewServiceCall" name="btnNewServiceCall" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { popupBroker.serviceCall.open(null, '&action=3');return false; };return false;"
src="/autotask/graphics/icons/content/service-calls.png?v=24241" title=
"Add Service Call" type="image"><input class="BlueberryImageButton" id=
"btnNewToDo" name="btnNewToDo" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { popupBroker.toDo.open(null, '&fromPage=Ticket');return false; };return false;"
src="/autotask/graphics/icons/content/todos.png?v=24241" title=
"Add To-Do" type="image"><input class="BlueberryImageButton" id=
"btnPrintTicket" name="btnPrintTicket" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { javascript: if(!PageIsLoading){if(typeof(e) == 'undefined'){e = null;} var eventEx = e || window.event;if(eventEx){eventEx = new Sys.UI.DomEvent(eventEx);} if(eventEx!=null && eventEx.target!=null && (eventEx.target.tagName=='A' || eventEx.target.tagName=='a')){}else{var a='/autotask/views/servicedesk/servicedeskTicket/service_ticket_printer_friendly_view.aspx?ticketId='+serviceTicket.get_ticketId()+'';var oWin=window.open(a,'PrintFriendlyView','height=750,width=920,top=0,left=0,location=0,menubar=0,resizable=0,scrollbars=0,status=0,titlebar=0,toolbar=0',true);if(oWin && !oWin.closed){oWin.focus();}}} };return false;"
src="/autotask/graphics/icons/content/print-view.png?v=24241" title=
"Print View" type="image"><input class="BlueberryImageButton" id=
"btnAcceptTicket" name="btnAcceptTicket" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { serviceTicket.acceptTicket(); };return false;"
src="/autotask/graphics/icons/content/accept-ticket.png?v=24241" style=
"display: none;" title="Accept Ticket" type="image"><input class=
"BlueberryImageButton" id="btnAcceptTicketDisabled" name=
"btnAcceptTicketDisabled" onclick="return false;" src=
"/autotask/graphics/icons/content/accept-ticket-disabled.png?v=24241"
style="cursor: default;" title="Accept Ticket" type=
"image"><input class="BlueberryImageButton" id="btnForwardTicket" name=
"btnForwardTicket" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { javascript: if(!PageIsLoading){if(typeof(e) == 'undefined'){e = null;} var eventEx = e || window.event;if(eventEx){eventEx = new Sys.UI.DomEvent(eventEx);} if(eventEx!=null && eventEx.target!=null && (eventEx.target.tagName=='A' || eventEx.target.tagName=='a')){}else{var a='/ServiceDesk/Popups/Forward/svcForward.asp?forward=1&taskIds='+serviceTicket.get_ticketId()+'';var oWin=window.open(a,'ForwardTicket','height=720,width=650,top=0,left=0,location=0,menubar=0,resizable=1,scrollbars=0,status=0,titlebar=0,toolbar=0',true);if(oWin && !oWin.closed){oWin.focus();}}} };return false;"
src="/autotask/graphics/icons/content/forward.png?v=24241" title=
"Forward/Modify Ticket" type="image"><input class=
"BlueberryImageButton" id="btnCompleteTicket" name="btnCompleteTicket"
onclick=
"if (serviceTicket.get_bodyLoaded() === true) { popupBroker.completeTicket.open(); };return false;"
src="/autotask/graphics/icons/content/checkbox-complete.png?v=24241"
title="Complete Ticket" type="image"><input class=
"BlueberryImageButton" disabled="disabled" id=
"btnCompleteTicketDisabled" name="btnCompleteTicketDisabled" onclick=
"return false;" src=
"/autotask/graphics/icons/content/checkbox-complete-disabled.png?v=24241"
style="cursor: default; display: none;" title="Complete Ticket" type=
"image"><input class="BlueberryImageButton" id="btnToGoReport" name=
"btnToGoReport" onclick=
"if (serviceTicket.get_bodyLoaded() === true) { javascript: if(!PageIsLoading){if(typeof(e) == 'undefined'){e = null;} var eventEx = e || window.event;if(eventEx){eventEx = new Sys.UI.DomEvent(eventEx);} if(eventEx!=null && eventEx.target!=null && (eventEx.target.tagName=='A' || eventEx.target.tagName=='a')){}else{var a='/servicedesk/reports/toGoReportFrame.asp?taskObjectId='+serviceTicket.get_ticketId()+'';var oWin=window.open(a,'ToGoReport','height=600,width=800,top=0,left=0,location=0,menubar=0,resizable=1,scrollbars=1,status=0,titlebar=0,toolbar=0',true);if(oWin && !oWin.closed){oWin.focus();}}} };return false;"
src="/autotask/graphics/icons/content/report.png?v=24241" title=
"To Go Report" type="image">
</div>
</body>
</html>
<input name="btnNewNote" id="btnNewNote" title="Add Note" class="BlueberryImageButton" src="/autotask/graphics/icons/content/note.png?v=24241" onclick="if (serviceTicket.get_bodyLoaded() === true) { popupBroker.note.open('', '', event); return false; };return false;" language="javascript" border="0" type="image">