I am new to selenium i want to take the screenshot of alert box whenever the alert is popped. The code i have written is as below:
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoAlertPresentException
import time
class SearchXSS(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def test_search_in_python_org(self):
driver = self.driver
driver.get("http://testfire.net/")
ele = driver.find_element_by_name("txtSearch")
ele.send_keys("<script>alert(document.cookie)</script>")
ele.send_keys(Keys.RETURN)
try:
time.sleep(1)
alert = driver.switch_to_alert()
driver.get_screenshot_as_file('screenshot.png')
alert.accept()
except NoAlertPresentException as e:
print "no alert to accept "
fo.close()
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
unittest.main()
I am facing the issue while taking the screenshot.The Error message is as below
====================================================================== ERROR: test_search_in_python_org (main.SearchXSS) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/user/programs/sele/testx.py", line 22, in test_search_in_python_org driver.get_screenshot_as_file('screenshot.png') File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 798, in get_screenshot_as_file png = self.get_screenshot_as_png() File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 817, in get_screenshot_as_png return base64.b64decode(self.get_screenshot_as_base64().encode('ascii'))
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 827, in get_screenshot_as_base64 return self.execute(Command.SCREENSHOT)['value'] File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute self.error_handler.check_response(response) File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 191, in check_response raise exception_class(message, screen, stacktrace, value['alert'].get('text')) UnexpectedAlertPresentException: Alert Text: amSessionId=92632533494 Message: Unexpected modal dialog (text: amSessionId=92632533494) Stacktrace: at fxdriver.modals.closeUnhandledAlert/< (file:///tmp/tmpdnEJbt/extensions/[email protected]/components/prompt-service.js:4745) at (http://testfire.net/search.aspx?txtSearch=%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E:80)---------------------------------------------------------------------- Ran 1 test in 10.346s
FAILED (errors=1) [Finished in 10.4s with exit code 1]
Help me out of this issue.