Sobes.tech
Junior

Aké lokalizátory existujú v Selenium?

sobes.tech AI

Odpoveď od AI

V Selenium sa nazývajú mechanizmy na vyhľadávanie webových prvkov na stránke lokalizátormi. Hlavné typy lokalizátorov:

  • ID: Umožňuje nájsť prvok podľa jeho atribútu id. Najrýchlejší a najspoľahlivejší spôsob, ak je ID jedinečné a stabilné.
  • Name: Umožňuje nájsť prvok podľa jeho atribútu name. Menej spoľahlivé ako ID, pretože name nie je vždy jedinečné.
  • Class Name: Umožňuje nájsť prvky podľa ich atribútu class. Vracia zoznam prvkov, pretože niekoľko prvkov môže mať rovnakú triedu.
  • Tag Name: Umožňuje nájsť prvky podľa názvu HTML tagu (napríklad div, a, input). Vracia zoznam prvkov.
  • Link Text: Umožňuje nájsť prvok <a> (odkaz) podľa presného textu odkazu.
  • Partial Link Text: Umožňuje nájsť prvok <a> (odkaz) podľa čiastočného zhodovania textu odkazu.
  • CSS Selector: Výkonný a flexibilný spôsob vyhľadávania prvkov pomocou syntaxe CSS selektorov. Umožňuje vyhľadávať podľa kombinácie atribútov, tagov, tried, hierarchie a stavov.
  • XPath: Najvýkonnejší a najflexibilnejší spôsob vyhľadávania prvkov, založený na navigácii štruktúrou XML/HTML dokumentu. Umožňuje vytvárať zložité cesty k prvkom, vyhľadávať podľa atribútov, obsahu a polohy.

Príklady použitia:

# Java
WebElement elementById = driver.findElement(By.id("myElementId"));
WebElement elementByName = driver.findElement(By.name("elementName"));
List<WebElement> elementsByClass = driver.findElements(By.className("myClass"));
WebElement elementByCss = driver.findElement(By.cssSelector("div.container > input[type='text']"));
WebElement elementByXpath = driver.findElement(By.xpath("//div[@id='parent']/button[text()='Submit']"));
# Python
element_by_id = driver.find_element(By.ID, "myElementId")
element_by_name = driver.find_element(By.NAME, "elementName")
elements_by_class = driver.find_elements(By.CLASS_NAME, "myClass")
element_by_css = driver.find_element(By.CSS_SELECTOR, "div.container > input[type='text']")
element_by_xpath = driver.find_element(By.XPATH, "//div[@id='parent']/button[text()='Submit']")

Výber lokalizátora závisí od stability webového prvku a štruktúry stránky. Odporúča sa používať ID, CSS Selector alebo XPath pri ich správnom zostavení.