2015-02-08 7 views
6

मैं अजगर और सलाद सेलेनियम webdriver उपयोग करने के साथ बुनियादी CRUD परीक्षण चल रहा हूँ।अजगर सेलेनियम UnexpectedAlertPresentException

मेरे अन्य परीक्षणों के सभी ठीक चलाने के लिए, लेकिन जब मैं "हटाएं", वहाँ एक मॉडल संवाद जो पुष्टि करते हैं कि वे उस उपयोगकर्ता को हटाना चाहते उपयोगकर्ता पूछता है। पॉपअप प्रकट होने के पल में, मुझे नीचे अपवाद मिलता है। मैंने इसे काम करने के लिए 2 घंटे बर्बाद कर दिया है। मुझे लगता है कि एक साधारण फिक्स है।

File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 164, in check_response 
    raise exception_class(message, screen, stacktrace) 
UnexpectedAlertPresentException: Message: u'Modal dialog present' ; Stacktrace: 
    at nsCommandProcessor.prototype.execute (file:///tmp/tmpeV2K89/extensions/[email protected]/components/command_processor.js:11520:13) 

त्रुटि को फेंकने वाले steps.py में पंक्ति यह है।

world.browser.find_element_by_link_text("Delete User").click() 

और उस तत्व के लिए HTML यह है।

<a href="https://stackoverflow.com/users/5910974510923776/delete" onclick="return confirm('Are you sure you want to delete this user?');">Delete User</a> 
+0

तो इसकी (जावा के रूप में) एक चेतावनी उपयोग 'd.switchTo() चेतावनी() स्वीकार();' (कृपया लगता है पायथन में बराबर बाध्यकारी)। यदि यह एक मॉडल संवाद है तो मुझे लगता है कि आप ठीक के लोकेटर को खोजने का प्रयास कर सकते हैं। –

+0

@ विवेकसिंह यह सिर्फ 'driver.switch_to_alert.accept()' या यहां तक ​​कि 'driver.switch_to.alert.accept()' है। मुझे दोनों मेहोड्स पर थोड़ा अंतर मिला है, इसलिए सोचा कि किसी के लिए संघर्ष करने वाले किसी के लिए सलाह देना महत्वपूर्ण है। वही बात 'driver.switch_to.window()' विधि पर लागू होती है। – erm3nda

उत्तर

10

आप switch to the alert करने की जरूरत है और यह स्वीकार करते हैं:।।

world.browser.find_element_by_link_text("Delete User").click() 
alert = world.browser.switch_to.alert 
alert.accept() 
+0

यह मुझे दुनिया में जाने की अनुमति नहीं दे रहा है .browser.switch_to_alert()। मैंने कोशिश की, यह पहले लाइन पर असफल रहा है और इससे आगे नहीं जायेगा। – andygimma

+0

@andygimma, ऐसा लगता है कि हटाए गए उपयोगकर्ता बटन पर क्लिक करने से पहले एक अलर्ट खोला गया है। – alecxe

+0

मेरे पास एक टाइपो था, आपका जवाब सही था। हालांकि आपके पास आपको ऊपर उठाने के लिए पर्याप्त प्रतिष्ठा अंक नहीं हैं। धन्यवाद! – andygimma

संबंधित मुद्दे