How can I prompt for input using Selenium/Webdriver and use the result?

Posted by Tempus on Stack Overflow See other posts from Stack Overflow or by Tempus
Published on 2011-11-17T22:30:03Z Indexed on 2011/11/20 9:52 UTC
Read the original article Hit count: 433

Filed under:
|
|

I would like to allow for user input and make some decisions based on it. If I do this:

driver.execute_script("prompt('Enter smth','smth')")

I get a nice prompt, but I cannot use it's value. Is there any way of showing an input box to the user, and use the value typed there?

EDIT: This is my script:

from selenium.webdriver import Firefox

if __name__ == "__main__":
    driver = Firefox()
    driver.execute_script("window.promptResponse=prompt('Enter smth','smth')")
    a = driver.execute_script("var win = this.browserbot.getUserWindow(); return win.promptResponse")
    print "got back %s" % a

And this exits with the following exception:

    a = driver.execute_script("var win = this.browserbot.getUserWindow(); return win.promptResponse")
  File "c:\python26\lib\site-packages\selenium-2.12.1-py2.6.egg\selenium\webdriver\remote\webdriver.py", line 385, in ex
ecute_script
    {'script': script, 'args':converted_args})['value']
  File "c:\python26\lib\site-packages\selenium-2.12.1-py2.6.egg\selenium\webdriver\remote\webdriver.py", line 153, in ex
ecute
    self.error_handler.check_response(response)
  File "c:\python26\lib\site-packages\selenium-2.12.1-py2.6.egg\selenium\webdriver\remote\errorhandler.py", line 110, in
 check_response
    if 'message' in value:
TypeError: argument of type 'NoneType' is not iterable

What am I not doing right?

© Stack Overflow or respective owner

Related posts about python

Related posts about selenium