Converting SeleniumWire's undetected_chromedriver to use multi-threading in SeleniumBase. #2097
-
|
Hello, everyone. Please, I need help with this. I have a code that uses Seleniumwire uc WebDriver, and it runs normally when I execute it for just one link. However, when I attempt to run it with multiple links using threading, it generates a lot of errors related to proxies due to the libraries I heard that the best way to resolve these errors is to convert it to a Selenium-based solution. Can anyone please help me with how I can do that My Code |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 3 replies
-
|
I just need some help with the '''initialize_driver()''' function and setting it up with SeleniumBase. Can anyone assist a fellow newbie here? |
Beta Was this translation helpful? Give feedback.
-
|
i tried this |
Beta Was this translation helpful? Give feedback.
-
If you're encountering issues with Selenium wire and need to use a proxy, you can solve it by following these steps:
Create an instance of the `Driver` class with the desired proxy settings. Replace `'username:password@ip:port'` with your actual proxy credentials and address:
```python
from seleniumbase import Driver
driver = Driver(uc=True, proxy='username:password@ip:port') |
Beta Was this translation helpful? Give feedback.
-
|
If you're looking to run multi-threaded tests in UC Mode with a proxy, here's the scoop: Multi-threading in UC Mode is possible if you use You'll need to use command-line options for this format, eg Below is a sample run command: pytest --uc -n4
Here's a sample file that uses import pytest
@pytest.mark.parametrize("", [[]] * 4)
def test_multi_threaded(sb):
sb.driver.get("https://nowsecure.nl/#relax")
try:
sb.assert_text("OH YEAH, you passed!", "h1", timeout=5.25)
sb.post_message("Selenium wasn't detected!", duration=2.8)
sb._print("\n Success! Website did not detect Selenium! ")
except Exception:
sb.fail('Selenium was detected! Try using: "pytest --uc"')Here's the output when running that file with pytest test_multi_uc.py --uc -n4
============================ test session starts =============================
platform darwin -- Python 3.11.4, pytest-7.4.0, pluggy-1.2.0
rootdir: ~/github/SeleniumBase/examples
configfile: pytest.ini
plugins: html-2.0.1, rerunfailures-12.0, cov-4.1.0, metadata-3.0.0, ordering-0.6, xdist-3.3.1, seleniumbase-4.17.13
4 workers [4 items]
Success! Website did not detect Selenium!
Success! Website did not detect Selenium!
..
Success! Website did not detect Selenium!
.
Success! Website did not detect Selenium!
.
============================= 4 passed in 9.38s ==============================Some websites may block you if they detect multiple simultaneous connections like that. Be careful where you go. Note that there are different syntax formats. See: https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md Also note that |
Beta Was this translation helpful? Give feedback.
If you're looking to run multi-threaded tests in UC Mode with a proxy, here's the scoop:
Multi-threading in UC Mode is possible if you use
pytestmulti-threading provided by pytest-xdist.You'll need to use command-line options for this format, eg
--ucto activate UC Mode,-n4(for 4 parallel processes, etc), and--proxy=user:pass@host:portto set proxy settings.Below is a sample run command:
Here's a sample file that uses
@pytest.mark.parametrize()to turn one test into four tests when run withpytest: