@@ -5825,18 +5825,26 @@ def js_click(
5825
5825
self.__extra_actions.append(action)
5826
5826
if not all_matches:
5827
5827
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)
5829
5834
else:
5830
5835
try:
5831
5836
self.__js_click_element(element)
5832
5837
except Exception:
5833
5838
self.wait_for_ready_state_complete()
5834
5839
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
+ )
5838
5845
if (
5839
- self.is_element_visible(selector)
5846
+ current_url == pre_action_url
5847
+ and self.is_element_visible(selector)
5840
5848
and self.is_element_clickable(selector)
5841
5849
):
5842
5850
try:
@@ -5849,14 +5857,16 @@ def js_click(
5849
5857
selector, by, timeout=settings.MINI_TIMEOUT
5850
5858
)
5851
5859
self.__js_click_element(element)
5852
- else :
5860
+ elif current_url == pre_action_url :
5853
5861
try:
5854
5862
self.__js_click_element(element)
5855
5863
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)
5860
5870
else:
5861
5871
if ":contains\\(" not in css_selector:
5862
5872
self.__js_click_all(selector, by=by)
@@ -6863,6 +6873,7 @@ def get_browser_downloads_folder(self):
6863
6873
elif (
6864
6874
self.driver.capabilities["browserName"].lower() == "chrome"
6865
6875
and int(self.get_chromedriver_version().split(".")[0]) >= 110
6876
+ and int(self.get_chromedriver_version().split(".")[0]) <= 112
6866
6877
and self.headless
6867
6878
):
6868
6879
return os.path.abspath(".")
0 commit comments