Monday, May 20, 2024
119
rated 0 times [  122] [ 3]  / answers: 1 / hits: 16841  / 10 Years ago, thu, may 8, 2014, 12:00:00

I am using Robot Framework with Selenium2Library for website tests automation. In one of the cases there is a prompt box (pop-up similar to alert, but with an input field in it, see example here) asking for some text. The problem is Robot Framework can only click OK or Cancel (Confirm Action and Choose Cancel On Next Confirmation keywords) on such pop-ups. So the question is: how can I input some text into the prompt box? Is it possible?



In SeleniumLibrary there was a Press Key Native keyword which could press keys without specifying the target element, but it is absent in Selenium2Library. If you know of any alternative - your answer will be much appreciated.



Using AutoIT isn't an option as the tests could be run on different platforms (not only Win).



Am I missing something?


More From » selenium-webdriver

 Answers
10

Selenium2Library doesn't currently have support for inserting text into a prompt. I've opened an issue in the issue tracker for this:



https://github.com/rtomac/robotframework-selenium2library/issues/292



Until it gets added, you can create your own selenium library by subclassing Selenium2Library, and you can add the function to your version.



For example, create a file named CustomSeleniumLibrary.py, and make it look like this:



# CustomSeleniumLibrary.py
from Selenium2Library import Selenium2Library

class CustomSeleniumLibrary(Selenium2Library):
def insert_into_prompt(self, text):
alert = None
try:
alert = self._current_browser().switch_to_alert()
alert.send_keys(text)

except WebDriverException:
raise RuntimeError('There were no alerts')


You can then write a test case which uses that library like this:



*** Settings ***
| Library | CustomSeleniumLibrary.py
| Suite Teardown | Close All Browsers

*** test cases ***
| Example of typing into a prompt
| | Open Browser | http://www.w3schools.com/js/tryit.asp?filename=tryjs_prompt
| | Select Frame | iframeResult
| | Click Button | Try it
| | Insert into prompt | my name is Inigo Montoya
| | Confirm action

[#71127] Tuesday, May 6, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jaylanw

Total Points: 730
Total Questions: 98
Total Answers: 95

Location: Saudi Arabia
Member since Tue, Nov 29, 2022
2 Years ago
;