Closed avalon60 closed 1 week ago
@avalon60, thank you for creating this issue. We will troubleshoot it as soon as we can.
Triage this issue by using labels.
If information is missing, add a helpful comment and then I-issue-template
label.
If the issue is a question, add the I-question
label.
If the issue is valid but there is no time to troubleshoot it, consider adding the help wanted
label.
If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C),
add the applicable G-*
label, and it will provide the correct link and auto-close the
issue.
After troubleshooting the issue, please add the R-awaiting answer
label.
Thank you!
I think I may have found the issue. I was caching dom elements and I have a feeling that I messed someting up. Apologies for any inconvenience.
What happened?
I have a framework, which reads JSON that describes a set of tests to be executed. The JSON is interpreted by my program, apex_unit_tester.py. The tests are mapped out into streams to execute via the Python multiprocessing module. A function, process_test(), is called for each test, and this in turn instatiates a page testing object, PageExecutor, to test an application page, This object instantiates a webdriver and before it exits it performs a webdriver.quit().
The problem I am seeing is that if I run tests such that more than one test is executed in any one of the multiprocessing streams, the 1st test in the stream succeeds, but the subsequent tests hit an exception, always at the same point. Even with identical tests the first test goes OK, and the subsequent test fails. The degree of parallelism is set by a command line parameter. If I set it to 1 (i.e. force a single stream) the 1st test runs error free, yet any subsequent tests hit the same problem:
As you can see, it appears that the Webdriver then carries on - it doesn't appear to have crashed. However. if I run the same tests such that only one test is allocated to each multiprocessing stream - they run without a glitch.
The code being executed, when the exception is raised, is the wait in this functiion:
I get the same results running this on Windows 11 and Linux Mint 21.3. I also get the same results using different application servers (one on one of my local machines and the other via work),
How can we reproduce the issue?
I'm not sure how this can be easily reporoduced. This is because I am testing APEX application pages. I have a Docker container which acts as a service that serves the pages for testing. APEX applications are stored in an Oracle database (inside the Docker container), and are served up via Oracle ORDS. The concept here is that we configure tests via a purposed APEX application, the APEX application allows pages from other APEX applications to be selected for testing. We declare actions to take place against selected widgets. Details are stored to the database. Another app acts as a launchpad. This app reads the configured tests as JSON and renders the JSON, where the apex_unit_tester.py reads th JSON and then uses Python multiprocessing to start testing the pages.
Relevant log output
Multiple tests:
Same 3 tests, but with parallel degree 3:
Operating System
Windows 11 and Linux Mint 21.3 (Ubuntu-ish)
Selenium version
Python 3.12.2 (Windows 11); Python 3.10.12 (Linux Mint); Seleium: Reproduced with 4.12 and 4.25
What are the browser(s) and version(s) where you see this issue?
Chrome => Windows: Version 129.0.6668.101 (Official Build) (64-bit) Linux: Version 124.0.6367.201 (Official Build) (64-bit)
What are the browser driver(s) and version(s) where you see this issue?
Windows: 129.0.6668.100 / Linux: ChromeDriver 124.0.6367.207
Are you using Selenium Grid?
No