Python selenium - 我尝试与新窗口交互并收到StaleElementReferenceException

时间:2016-10-25 17:47:32

标签: python selenium

我正在编写一个与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 &amp;&amp; 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 &amp;&amp; eventEx.target!=null &amp;&amp; (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 &amp;&amp; !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&amp;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, '&amp;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, '&amp;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 &amp;&amp; eventEx.target!=null &amp;&amp; (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 &amp;&amp; !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 &amp;&amp; eventEx.target!=null &amp;&amp; (eventEx.target.tagName=='A' || eventEx.target.tagName=='a')){}else{var a='/ServiceDesk/Popups/Forward/svcForward.asp?forward=1&amp;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 &amp;&amp; !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 &amp;&amp; eventEx.target!=null &amp;&amp; (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 &amp;&amp; !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">

0 个答案:

没有答案