Skip to content

Commit

Permalink
Merge pull request #85 from kayqueGovetri/FIX/implement-undetected
Browse files Browse the repository at this point in the history
CI: Implement undetected in testing
  • Loading branch information
hhslepicka committed Apr 18, 2023
2 parents cfdf392 + 8202928 commit 26376d7
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 14 deletions.
20 changes: 15 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ name: Tests

on:
workflow_dispatch:
branches:
- "main"
push:
branches:
- "main"
pull_request:

concurrency:
Expand All @@ -26,8 +27,7 @@ jobs:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.10"]
# Insert "undetected_chrome" when all issues with the lib are resolved.
browser: ["firefox", "chrome", "edge"]
browser: ["firefox", "chrome", "edge", "undetected_chrome"]
headless: [true]
exclude:
# Can't install firefox using setup-firefox on Windows
Expand All @@ -36,6 +36,10 @@ jobs:
# * https://github.com/abhi1693/setup-browser/issues/8
- os: windows-latest
browser: "firefox"
# Install wrong version in macOS.
- os: macos-latest
browser: "undetected_chrome"

steps:
- uses: actions/checkout@v2
- name: Install libgl1
Expand All @@ -59,7 +63,7 @@ jobs:
pip install .
- uses: browser-actions/setup-chrome@latest
if: matrix.browser == 'chrome'
if: matrix.browser == 'chrome' || matrix.browser == 'undetected_chrome'
with:
chrome-version: stable

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

- name: Run Tests in ${{ matrix.browser }}
if: matrix.browser == 'edge' || matrix.browser == 'chrome' || matrix.browser == 'firefox'
run: |
pytest -n 2 -v -vrxs --headless=${{ matrix.headless }} --browser=${{ matrix.browser }}
- name: Run Tests in ${{ matrix.browser }}
if: matrix.browser == 'undetected_chrome'
run: |
pytest -v -vrxs --headless=${{ matrix.headless }} --browser=${{ matrix.browser }}
4 changes: 2 additions & 2 deletions botcity/web/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,8 +266,8 @@ def check_driver():

def _get_parameters_to_driver(self):
if self.browser == Browser.UNDETECTED_CHROME:
return {"driver_executable_path": self.driver_path, "options": self.options,
"desired_capabilities": self.capabilities, "headless": self.headless}
return {"options": self.options,
"desired_capabilities": self.capabilities}
if compat.version_selenium_is_larger_than_four():
return {"options": self.options, "service": self._get_service()}

Expand Down
3 changes: 2 additions & 1 deletion botcity/web/browsers/firefox.py
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,8 @@ def default_options(headless=False, download_folder_path=None, user_data_dir=Non
except AttributeError:
page_load_strategy = page_load_strategy
firefox_options.page_load_strategy = page_load_strategy
firefox_options.headless = headless
if headless:
firefox_options.add_argument('-headless')
if not user_data_dir:
temp_dir = tempfile.TemporaryDirectory(prefix="botcity_")
user_data_dir = temp_dir.name
Expand Down
4 changes: 1 addition & 3 deletions botcity/web/browsers/undetected_chrome.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,7 @@ def default_options(headless=False, download_folder_path=None, user_data_dir=Non
chrome_options.add_argument("--disable-blink-features=AutomationControlled")

if headless:
chrome_options.add_argument('--headless')
chrome_options.add_argument('--headless=new')
chrome_options.add_argument('--headless=chrome')
chrome_options.headless = True
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--hide-scrollbars")
chrome_options.add_argument("--mute-audio")
Expand Down
7 changes: 4 additions & 3 deletions tests/test_browser.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def test_display_size(web: WebBot):
web.set_screen_resolution(1280, 720)
(w, h) = web.display_size()

assert w in [1280, 1233, 1223, 1028]
assert w in [1280, 1233, 1223, 1028, 1264]


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


def test_scroll_down(web: WebBot):
Expand Down Expand Up @@ -242,7 +243,7 @@ def test_set_screen_resolution(web: WebBot):

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


def test_wait_for_downloads(web: WebBot):
Expand Down

0 comments on commit 26376d7

Please sign in to comment.