[UPD] selenium lib support headless and get_text_from_element

This commit is contained in:
Mathieu Benoit 2025-06-13 05:21:58 -04:00
parent 67cd724795
commit 05e93b19d9

View file

@ -26,6 +26,7 @@ from selenium.webdriver import ActionChains
from selenium.webdriver.common.actions.wheel_input import ScrollOrigin from selenium.webdriver.common.actions.wheel_input import ScrollOrigin
from selenium.webdriver.common.by import By from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service from selenium.webdriver.firefox.service import Service
from selenium.webdriver.remote.webelement import WebElement from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support import expected_conditions as EC
@ -80,6 +81,9 @@ class SeleniumLib(object):
if not self.config.not_private_mode: if not self.config.not_private_mode:
firefox_options.add_argument("--private") firefox_options.add_argument("--private")
if self.config.headless:
firefox_options.add_argument("--headless")
# firefox_options.set_preference("browser.link.open_newwindow", 3) # firefox_options.set_preference("browser.link.open_newwindow", 3)
# firefox_options.set_preference("browser.link.open_newwindow.restriction", 2) # firefox_options.set_preference("browser.link.open_newwindow.restriction", 2)
@ -320,6 +324,12 @@ class SeleniumLib(object):
return ele return ele
def get_text_from_element(
self, by: str = By.ID, value: str = None, timeout=5
):
ele = self.get_element(by, value, timeout=timeout)
return ele.text
def get_all_element(self, by: str = By.ID, value: str = None, timeout=5): def get_all_element(self, by: str = By.ID, value: str = None, timeout=5):
wait = WebDriverWait(self.driver, timeout) wait = WebDriverWait(self.driver, timeout)
ele = wait.until( ele = wait.until(
@ -1205,6 +1215,11 @@ def fill_parser(parser):
action="store_true", action="store_true",
help="Default is private mode.", help="Default is private mode.",
) )
group_browser.add_argument(
"--headless",
action="store_true",
help="For automation without GUI.",
)
group_browser.add_argument( group_browser.add_argument(
"--no_dark_mode", "--no_dark_mode",
action="store_true", action="store_true",