I previously posted this issue in the "Ranorex Driver" section of the forum, but unfortunately, I have not received any response for almost two months.
In our company, we rely on the RanorexDriver with Python to script our test cases. We have always used a pre-release version of 9.3.2. However, the digital certificate for version 9.3.2 expired around winter last year. Recently, we attempted to update to the latest version (10.2.2), but we encountered several strange bugs in this version that severely affect the driver's functionality.
Firstly, we tried resolving these issues with both a fresh installation of Selenium 3.14 and Selenium 4, but the errors persisted in both situations. We also experimented with various versions of Python from 3.7 onwards and tested all available RanorexDriver versions (including the corresponding Studio Versions, with the latest Studio version tested being 10.6.1). The only version that works properly is 9.3.2.
The most critical problem occurs when a Selenium exception is raised, such as a "NoSuchElementException." The RanorexDriver returns a response with incorrect formatting, causing the Selenium ErrorHandler to fail in decoding the response. As a result, instead of the expected error, a KeyError is raised:
The Ranorex Driver response includes an additional JSON key called 'sessionId,' which causes an issue because Selenium expects only one key, namely 'value.' To resolve this problem, you can modify the Selenium error_handler() by removing the 'sessionId' key from the error response.
Code: Select all
File "C:?\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "C:?\Python\Python311\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 130, in check_response status = value["status"] ~~~~~^^^^^^^^^^ KeyError: 'status'
Unfortunately, after we found the solution to the problem, we discovered multiple additional bugs.
If you already created a WebElement, you cannot use the .find_elements or .find_elements_by_xpath method on the Webelement. The RanorexDriver flat out responds that it doesn't know which method to use in that case. Interestingly, if you use the singular versions, such as .find_element() or .find_element_by_xpath, on an already created WebElement, it works correctly.
The second bug is that you can't use .get_attribute() on any created WebElement because scripting is disabled.
Lastly the Ranorex Driver does not recognize any of the special keys provided by Selenium in "from selenium.webdriver.common.keys import Keys". It does not matter if it's "Enter" or any other modifier or function key. Instead of performing the specified keypress, the driver sends the key as a string.
All of these functionalities worked perfectly fine in version 9.3.2.
Has anyone received more information on this topic? It would be reassuring to hear from the Ranorex Team. We are already in discussions with the support team, but we have not received any concrete information regarding these issues. As it stands, the RanorexDriver is completely unusable with any of the officially released versions.