Skip to content

Commit 759c6cb

Browse files
committed
Add special methods for js_click()
1 parent 1d1e862 commit 759c6cb

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

help_docs/method_summary.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,10 @@ self.click_xpath(xpath)
356356

357357
self.js_click(selector, by="css selector", all_matches=False, scroll=True)
358358

359+
self.js_click_if_present(selector, by="css selector")
360+
361+
self.js_click_if_visible(selector, by="css selector")
362+
359363
self.js_click_all(selector, by="css selector")
360364

361365
self.jquery_click(selector, by="css selector")

seleniumbase/fixtures/base_case.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5273,6 +5273,20 @@ def js_click(
52735273
pass
52745274
self.__demo_mode_pause_if_active()
52755275

5276+
def js_click_if_present(self, selector, by="css selector"):
5277+
"""If the page selector exists, js_click() the element.
5278+
This method only clicks on the first matching element found."""
5279+
self.wait_for_ready_state_complete()
5280+
if self.is_element_present(selector, by=by):
5281+
self.js_click(selector, by=by)
5282+
5283+
def js_click_if_visible(self, selector, by="css selector"):
5284+
"""If the page selector exists and is visible, js_click() the element.
5285+
This method only clicks on the first matching element found."""
5286+
self.wait_for_ready_state_complete()
5287+
if self.is_element_visible(selector, by=by):
5288+
self.js_click(selector, by=by)
5289+
52765290
def js_click_all(self, selector, by="css selector"):
52775291
"""Clicks all matching elements using pure JS. (No jQuery)"""
52785292
self.js_click(selector, by="css selector", all_matches=True)

0 commit comments

Comments
 (0)