diff --git a/botcity/web/bot.py b/botcity/web/bot.py index f71cf76..d970ec8 100644 --- a/botcity/web/bot.py +++ b/botcity/web/bot.py @@ -356,6 +356,12 @@ def _others_configurations(self): https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/260#issuecomment-901276808. It will be a temporary solution. """ + if self.browser == Browser.UNDETECTED_CHROME: + try: + self.driver.get("about:blank") + except Exception: + pass + params = { "behavior": "allow", "downloadPath": self.download_folder_path diff --git a/conftest.py b/conftest.py index f8ab517..2f3ccc3 100644 --- a/conftest.py +++ b/conftest.py @@ -120,7 +120,21 @@ def download_driver(request): manager = factory_driver_manager(browser=browser) cache_manager = DriverCacheManager(root_dir=folder_driver) - installed_driver = manager(cache_manager=cache_manager).install() + + if browser == Browser.EDGE: + # The Edge webdriver download link has changed. + # Since the webdriver-manager is using the outdated link, it is necessary to pass it manually. + # References: + # - https://github.com/SeleniumHQ/selenium/issues/16073 + # - https://github.com/SeleniumHQ/selenium/pull/16056 + edge_driver_url = "https://msedgedriver.microsoft.com" + installed_driver = manager( + url=edge_driver_url, + latest_release_url=f"{edge_driver_url}/LATEST_RELEASE", + cache_manager=cache_manager + ).install() + else: + installed_driver = manager(cache_manager=cache_manager).install() yield installed_driver # Issue: https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/551 diff --git a/tests/test_browser.py b/tests/test_browser.py index e65d218..c615531 100644 --- a/tests/test_browser.py +++ b/tests/test_browser.py @@ -34,6 +34,7 @@ def test_close_page(web: WebBot): def test_create_window(web: WebBot): web.browse(conftest.INDEX_PAGE) web.create_window(url=conftest.TEST_PAGE) + web.wait(3000) title = web.page_title() assert title == 'Page test' @@ -42,6 +43,7 @@ def test_create_window(web: WebBot): def test_display_size(web: WebBot): web.browse(conftest.INDEX_PAGE) web.set_screen_resolution(1280, 720) + web.wait(3000) (w, h) = web.display_size() assert w in [1280, 1233, 1223, 1028, 1264, 1176, 1256] @@ -241,6 +243,7 @@ def test_scroll_up(web: WebBot): def test_set_screen_resolution(web: WebBot): web.browse(conftest.INDEX_PAGE) web.set_screen_resolution(500, 500) + web.wait(3000) page_size = web.find_element('page-size', By.ID).text width = page_size.split('x')[0] diff --git a/tests/test_vision.py b/tests/test_vision.py index afefa5e..7f24758 100644 --- a/tests/test_vision.py +++ b/tests/test_vision.py @@ -48,6 +48,7 @@ def test_get_last_element(web: WebBot): def test_find_text(web: WebBot): web.browse(conftest.INDEX_PAGE) web.set_screen_resolution(3000, 2000) + web.wait(3000) web.add_image('hello_world', os.path.join(conftest.PROJECT_DIR, 'resources', 'hello_world.png')) ele = web.find("hello_world", matching=0.97, waiting_time=20000)