WebpageCreator / myTools /GetSVGList.py
Houzeric's picture
Upload 29 files
77c658d verified
Raw
History Blame
1.75 kB
from smolagents import Tool
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
from markdownify import markdownify as md
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
class GetSVGList(Tool):
name = "get_svg_list"
description = "Get list of svg available to generate it with GetSVG Tool"
inputs = {
}
output_type = "array"
def forward(self) -> str:
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument(
"user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/114.0.0.0 Safari/537.36"
)
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()), options=chrome_options)
try:
url = "https://phosphoricons.com/"
driver.get(url)
wait = WebDriverWait(driver, 10)
name_elements = wait.until(
EC.presence_of_all_elements_located((By.CSS_SELECTOR, "span.name"))
)
icon_names = [el.text.strip() for el in name_elements if el.text.strip()]
return icon_names
if not icon_names:
return "Aucun nom d'icône trouvé."
return "\n".join(icon_names)
finally:
driver.quit()