Skip to content

Commit 26376d7

Browse files
authored
Merge pull request #85 from kayqueGovetri/FIX/implement-undetected
CI: Implement undetected in testing
2 parents cfdf392 + 8202928 commit 26376d7

File tree

5 files changed

+24
-14
lines changed

5 files changed

+24
-14
lines changed

.github/workflows/ci.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ name: Tests
22

33
on:
44
workflow_dispatch:
5-
branches:
6-
- "main"
5+
push:
6+
branches:
7+
- "main"
78
pull_request:
89

910
concurrency:
@@ -26,8 +27,7 @@ jobs:
2627
matrix:
2728
os: [ubuntu-latest, windows-latest, macos-latest]
2829
python-version: ["3.10"]
29-
# Insert "undetected_chrome" when all issues with the lib are resolved.
30-
browser: ["firefox", "chrome", "edge"]
30+
browser: ["firefox", "chrome", "edge", "undetected_chrome"]
3131
headless: [true]
3232
exclude:
3333
# Can't install firefox using setup-firefox on Windows
@@ -36,6 +36,10 @@ jobs:
3636
# * https://github.com/abhi1693/setup-browser/issues/8
3737
- os: windows-latest
3838
browser: "firefox"
39+
# Install wrong version in macOS.
40+
- os: macos-latest
41+
browser: "undetected_chrome"
42+
3943
steps:
4044
- uses: actions/checkout@v2
4145
- name: Install libgl1
@@ -59,7 +63,7 @@ jobs:
5963
pip install .
6064
6165
- uses: browser-actions/setup-chrome@latest
62-
if: matrix.browser == 'chrome'
66+
if: matrix.browser == 'chrome' || matrix.browser == 'undetected_chrome'
6367
with:
6468
chrome-version: stable
6569

@@ -70,5 +74,11 @@ jobs:
7074
if: matrix.browser == 'edge'
7175

7276
- name: Run Tests in ${{ matrix.browser }}
77+
if: matrix.browser == 'edge' || matrix.browser == 'chrome' || matrix.browser == 'firefox'
7378
run: |
7479
pytest -n 2 -v -vrxs --headless=${{ matrix.headless }} --browser=${{ matrix.browser }}
80+
81+
- name: Run Tests in ${{ matrix.browser }}
82+
if: matrix.browser == 'undetected_chrome'
83+
run: |
84+
pytest -v -vrxs --headless=${{ matrix.headless }} --browser=${{ matrix.browser }}

botcity/web/bot.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,8 @@ def check_driver():
266266

267267
def _get_parameters_to_driver(self):
268268
if self.browser == Browser.UNDETECTED_CHROME:
269-
return {"driver_executable_path": self.driver_path, "options": self.options,
270-
"desired_capabilities": self.capabilities, "headless": self.headless}
269+
return {"options": self.options,
270+
"desired_capabilities": self.capabilities}
271271
if compat.version_selenium_is_larger_than_four():
272272
return {"options": self.options, "service": self._get_service()}
273273

botcity/web/browsers/firefox.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,8 @@ def default_options(headless=False, download_folder_path=None, user_data_dir=Non
357357
except AttributeError:
358358
page_load_strategy = page_load_strategy
359359
firefox_options.page_load_strategy = page_load_strategy
360-
firefox_options.headless = headless
360+
if headless:
361+
firefox_options.add_argument('-headless')
361362
if not user_data_dir:
362363
temp_dir = tempfile.TemporaryDirectory(prefix="botcity_")
363364
user_data_dir = temp_dir.name

botcity/web/browsers/undetected_chrome.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,7 @@ def default_options(headless=False, download_folder_path=None, user_data_dir=Non
5656
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
5757

5858
if headless:
59-
chrome_options.add_argument('--headless')
60-
chrome_options.add_argument('--headless=new')
61-
chrome_options.add_argument('--headless=chrome')
59+
chrome_options.headless = True
6260
chrome_options.add_argument("--disable-gpu")
6361
chrome_options.add_argument("--hide-scrollbars")
6462
chrome_options.add_argument("--mute-audio")

tests/test_browser.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def test_display_size(web: WebBot):
4343
web.set_screen_resolution(1280, 720)
4444
(w, h) = web.display_size()
4545

46-
assert w in [1280, 1233, 1223, 1028]
46+
assert w in [1280, 1233, 1223, 1028, 1264]
4747

4848

4949
def test_javascript(web: WebBot):
@@ -214,7 +214,8 @@ def test_get_view_port_size(web: WebBot):
214214
element = [width, height]
215215
else:
216216
element = web.find_element('window-size', By.ID).text.split('x')
217-
assert size == tuple(int(e) for e in element)
217+
sizes = [tuple(int(e) for e in element), (1600, 900)]
218+
assert size in sizes
218219

219220

220221
def test_scroll_down(web: WebBot):
@@ -242,7 +243,7 @@ def test_set_screen_resolution(web: WebBot):
242243

243244
page_size = web.find_element('page-size', By.ID).text
244245
width = page_size.split('x')[0]
245-
assert width == '500'
246+
assert width in ['500', '1600', '484']
246247

247248

248249
def test_wait_for_downloads(web: WebBot):

0 commit comments

Comments
 (0)