From 2c1f58625ea7545950b3c630f2ec063c474f2dea Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 28 Jul 2020 12:01:40 -0400 Subject: [PATCH 1/4] Fix double_click() for older versions of ChromeDriver --- seleniumbase/fixtures/base_case.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/seleniumbase/fixtures/base_case.py b/seleniumbase/fixtures/base_case.py index 82f3f493..428dc5d3 100755 --- a/seleniumbase/fixtures/base_case.py +++ b/seleniumbase/fixtures/base_case.py @@ -229,6 +229,16 @@ class BaseCase(unittest.TestCase): self.driver, selector, by, timeout=timeout) actions = ActionChains(self.driver) actions.double_click(element).perform() + except Exception: + css_selector = self.convert_to_css_selector(selector, by=by) + css_selector = re.escape(css_selector) + css_selector = self.__escape_quotes_if_needed(css_selector) + double_click_script = ( + """var targetElement1 = document.querySelector('%s'); + var clickEvent1 = document.createEvent('MouseEvents'); + clickEvent1.initEvent('dblclick', true, true); + targetElement1.dispatchEvent(clickEvent1);""" % css_selector) + self.execute_script(double_click_script) if settings.WAIT_FOR_RSC_ON_CLICKS: self.wait_for_ready_state_complete() if self.demo_mode: From eb6f4d1a49da4b4de056408c5c398003a2b1a45e Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 28 Jul 2020 12:02:57 -0400 Subject: [PATCH 2/4] Race through chart display if running in headless mode --- seleniumbase/fixtures/base_case.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/seleniumbase/fixtures/base_case.py b/seleniumbase/fixtures/base_case.py index 428dc5d3..0db2808e 100755 --- a/seleniumbase/fixtures/base_case.py +++ b/seleniumbase/fixtures/base_case.py @@ -3885,6 +3885,8 @@ class BaseCase(unittest.TestCase): interval - The delay time for auto-advancing charts. (in seconds) If set to 0 (default), auto-advancing is disabled. """ + if self.headless: + interval = 1 # Race through chart if running in headless mode if not chart_name: chart_name = "default" if not filename: From 324401e54609201c5cda90eec4377a48a7ab521c Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 28 Jul 2020 12:04:01 -0400 Subject: [PATCH 3/4] Update example tests --- examples/swag_labs_suite.py | 2 +- examples/test_apple_site.py | 4 ++-- examples/test_swag_labs.py | 2 +- examples/test_usefixtures.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/swag_labs_suite.py b/examples/swag_labs_suite.py index 284a6445..1b5802da 100755 --- a/examples/swag_labs_suite.py +++ b/examples/swag_labs_suite.py @@ -73,7 +73,7 @@ class SwagLabsTests(BaseCase): # Finish Checkout and verify the item was removed from the cart self.click("link=FINISH") self.assert_exact_text("THANK YOU FOR YOUR ORDER", "h2") - self.assert_element("div.pony_express") + self.assert_element("img.pony_express") self.click("#shopping_cart_container path") self.assert_element_absent("div.inventory_item_name") self.click(continue_shopping_button) diff --git a/examples/test_apple_site.py b/examples/test_apple_site.py index f3bf97ca..ba603bb9 100755 --- a/examples/test_apple_site.py +++ b/examples/test_apple_site.py @@ -12,9 +12,9 @@ class AppleTestClass(BaseCase): title = "Testing with WebDriver in Safari" self.type('[placeholder*="developer.apple.com"]', title + "\n") self.click("link=%s" % title) - self.assert_element('[href="/documentation"]') + self.assert_element('div.localnav-content [href*="/documentation/"]') self.assert_text(title, "h1") - self.highlight("div.topic-description p") + self.highlight("div.description div.abstract") self.highlight("h2") h3 = "h3:nth-of-type(%s)" self.assert_text("Make Sure You Have Safari’s WebDriver", h3 % "1") diff --git a/examples/test_swag_labs.py b/examples/test_swag_labs.py index 97a2fcdc..45369479 100755 --- a/examples/test_swag_labs.py +++ b/examples/test_swag_labs.py @@ -65,7 +65,7 @@ class SwagLabsTests(BaseCase): # Finish Checkout and verify item is no longer in cart self.click("link=FINISH") self.assert_exact_text("THANK YOU FOR YOUR ORDER", "h2") - self.assert_element("div.pony_express") + self.assert_element("img.pony_express") self.click("#shopping_cart_container path") self.assert_element_absent("div.inventory_item_name") self.click(continue_shopping_button) diff --git a/examples/test_usefixtures.py b/examples/test_usefixtures.py index 9fa0b6e9..f4d71095 100644 --- a/examples/test_usefixtures.py +++ b/examples/test_usefixtures.py @@ -8,7 +8,7 @@ class Test_UseFixtures(): sb.open("https://google.com/ncr") sb.update_text('input[title="Search"]', 'SeleniumBase\n') sb.click('a[href*="github.com/seleniumbase/SeleniumBase"]') - sb.assert_text("SeleniumBase", "h1.public") + sb.assert_text("SeleniumBase", 'strong[itemprop="name"]') sb.assert_text("integrations") sb.assert_element('a[title="help_docs"]') sb.click('a[title="examples"]') From 6cd9029f4b7df03bc26d4504126aa005d4c3378c Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Tue, 28 Jul 2020 12:05:20 -0400 Subject: [PATCH 4/4] Version 1.44.3 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0d85cde3..6e1c0f90 100755 --- a/setup.py +++ b/setup.py @@ -54,7 +54,7 @@ if sys.argv[-1] == 'publish': setup( name='seleniumbase', - version='1.44.2', + version='1.44.3', description='Fast, Easy, and Reliable Browser Automation & Testing.', long_description=long_description, long_description_content_type='text/markdown',