robotframework / robotframework/SeleniumLibrary
Keyword `Input Password` throws an exception when run with Python (no robotframework)
Open
Nobody has claimed this yet.
bug
priority: high
- Dominant language
- Python
- Stars
- 1.5k
- Forks
- 787
- PR merge metrics
- No merged PRs in 30d
Description
For issues
Steps to reproduce the issue
from SeleniumLibrary import SeleniumLibrary
from time import sleep
library = SeleniumLibrary()
def minimal_task():
try:
library.open_browser('https://docs.robocorp.com')
library.input_password("//input[@aria-label='Search']", "playwright")
sleep(5)
finally:
library.close_all_browsers()
print("Done.")
if __name__ == "__main__":
minimal_task()
Error messages and additional information
Traceback (most recent call last):
File "task.py", line 23, in <module>
minimal_task()
File "task.py", line 15, in minimal_task
library.input_password("//input[@aria-label='Search']", "playwright")
File "C:\Users\User\AppData\Local\robocorp\live\199e494e4c733ef3\lib\site-packages\SeleniumLibrary\keywords\formelement.py", line 269, in input_password
self._input_text_into_text_field(locator, password, clear, disable_log=True)
File "C:\Users\User\AppData\Local\robocorp\live\199e494e4c733ef3\lib\site-packages\SeleniumLibrary\keywords\formelement.py", line 509, in _input_text_into_text_field
previous_level = BuiltIn().set_log_level("NONE")
File "C:\Users\User\AppData\Local\robocorp\live\199e494e4c733ef3\lib\site-packages\robot\libraries\BuiltIn.py", line 3006, in set_log_level
old = self._context.output.set_log_level(level)
File "C:\Users\User\AppData\Local\robocorp\live\199e494e4c733ef3\lib\site-packages\robot\libraries\BuiltIn.py", line 64, in _context
return self._get_context()
File "C:\Users\User\AppData\Local\robocorp\live\199e494e4c733ef3\lib\site-packages\robot\libraries\BuiltIn.py", line 69, in _get_context
raise RobotNotRunningError('Cannot access execution context')
robot.libraries.BuiltIn.RobotNotRunningError: Cannot access execution context
Expected behavior and actual behavior
Keyword Input Password works with and without Robot Framework
Environment
Browser: default by Open Browser keyword
Browser driver: Gecko
Operating System: Windows 10
Libraries
- Robot Framework: NOT USED
- Selenium: 3.141.0
- SeleniumLibrary: robotframework-seleniumlibrary==5.1.3
- Interpreter: Python 3.7.5 | packaged by conda-forge | (default, Jan 28 2021, 18:15:34) [MSC v.1916 64 bit (AMD64)] on win32
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in SeleniumLibrary/keywords/formelement.py at input_password and _input_text_into_text_field, the entry points shown in the traceback. Reproduce the call outside Robot Framework, then inspect the existing form-element keyword tests. Done means Input Password works both with and without a Robot Framework execution context, with regression coverage for the reported failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100