@@ -5825,18 +5825,26 @@ def js_click(
58255825 self.__extra_actions.append(action)
58265826 if not all_matches:
58275827 if ":contains\\(" not in css_selector:
5828- self.__js_click(selector, by=by)
5828+ try:
5829+ self.__js_click(selector, by=by)
5830+ except Exception:
5831+ current_url = self.driver.current_url
5832+ if current_url == pre_action_url:
5833+ self.__js_click_element(element)
58295834 else:
58305835 try:
58315836 self.__js_click_element(element)
58325837 except Exception:
58335838 self.wait_for_ready_state_complete()
58345839 time.sleep(0.05)
5835- element = self.wait_for_element_present(
5836- selector, by, timeout=settings.SMALL_TIMEOUT
5837- )
5840+ current_url = self.driver.current_url
5841+ if current_url == pre_action_url:
5842+ element = self.wait_for_element_present(
5843+ selector, by, timeout=settings.SMALL_TIMEOUT
5844+ )
58385845 if (
5839- self.is_element_visible(selector)
5846+ current_url == pre_action_url
5847+ and self.is_element_visible(selector)
58405848 and self.is_element_clickable(selector)
58415849 ):
58425850 try:
@@ -5849,14 +5857,16 @@ def js_click(
58495857 selector, by, timeout=settings.MINI_TIMEOUT
58505858 )
58515859 self.__js_click_element(element)
5852- else :
5860+ elif current_url == pre_action_url :
58535861 try:
58545862 self.__js_click_element(element)
58555863 except Exception:
5856- element = self.wait_for_element_present(
5857- selector, by, timeout=settings.MINI_TIMEOUT
5858- )
5859- self.__js_click_element(element)
5864+ current_url = self.driver.current_url
5865+ if current_url == pre_action_url:
5866+ element = self.wait_for_element_present(
5867+ selector, by, timeout=settings.MINI_TIMEOUT
5868+ )
5869+ self.__js_click_element(element)
58605870 else:
58615871 if ":contains\\(" not in css_selector:
58625872 self.__js_click_all(selector, by=by)
@@ -6863,6 +6873,7 @@ def get_browser_downloads_folder(self):
68636873 elif (
68646874 self.driver.capabilities["browserName"].lower() == "chrome"
68656875 and int(self.get_chromedriver_version().split(".")[0]) >= 110
6876+ and int(self.get_chromedriver_version().split(".")[0]) <= 112
68666877 and self.headless
68676878 ):
68686879 return os.path.abspath(".")
0 commit comments