Sobes.tech
Junior

Jaké existují lokalizátory v Selenium?

sobes.tech AI

Odpověď od AI

Locator v Seleniumu jsou mechanismy pro hledání webových prvků na stránce. Hlavní typy locatorů:

  • ID: Umožňuje najít prvek podle jeho atributu id. Nejrychlejší a nejspolehlivější způsob, pokud je ID jedinečné a stabilní.
  • Name: Umožňuje najít prvek podle jeho atributu name. Méně spolehlivé než ID, protože name není vždy jedinečné.
  • Class Name: Umožňuje najít prvky podle jejich atributu class. Vrací seznam prvků, protože více prvků může mít stejnou třídu.
  • Tag Name: Umožňuje najít prvky podle názvu HTML tagu (například div, a, input). Vrací seznam prvků.
  • Link Text: Umožňuje najít <a> (odkaz) prvek podle přesného textu odkazu.
  • Partial Link Text: Umožňuje najít <a> (odkaz) prvek podle částečného shody textu odkazu.
  • CSS Selector: Výkonný a flexibilní způsob hledání prvků pomocí syntaxe CSS selektorů. Umožňuje hledat podle kombinace atributů, tagů, tříd, hierarchie a stavů.
  • XPath: Nejvýkonnější a nejflexibilnější způsob hledání prvků, založený na navigaci strukturou XML/HTML dokumentu. Umožňuje vytvářet složité cesty k prvkům, hledat podle atributů, obsahu a pozice.

Příklady použití:

# 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ýběr lokalizátoru závisí na stabilitě webového prvku a struktuře stránky. Doporučuje se používat ID, CSS Selector nebo XPath, pokud jsou správně sestavené.