Junior
Milyen helymeghatározók vannak a Selenium-ban?
sobes.tech MI
Válasz az MI-től
A Selenium helymeghatározók olyan mechanizmusok, amelyek segítségével webelemeket találhatunk az oldalon. A fő típusok:
- ID: Lehetővé teszi egy elem megtalálását az
idattribútuma alapján. A leggyorsabb és legmegbízhatóbb módszer, ha az ID egyedi és stabil. - Name: Lehetővé teszi egy elem megtalálását a
nameattribútuma alapján. Kevésbé megbízható, mint az ID, mivel anamenem mindig egyedi. - Class Name: Lehetővé teszi az elemek megtalálását a
classattribútumuk alapján. Listát ad vissza, mivel több elem is lehet ugyanazzal a osztállyal. - Tag Name: Lehetővé teszi az elemek megtalálását a HTML tag nevével (pl.
div,a,input). Listát ad vissza. - Link Text: Egy
<a>(hivatkozás) elemet pontos szöveg szerint talál meg. - Partial Link Text: Egy
<a>(hivatkozás) elemet részleges szöveg egyezés szerint talál meg. - CSS Selector: Egy erőteljes és rugalmas módszer az elemek keresésére a CSS szelektor szintaxisával. Képes keresni attribútumok, tagek, osztályok, hierarchia és állapotok kombinációjával.
- XPath: A legkorszerűbb és legflexibilisebb módszer az elemek keresésére, XML/HTML dokumentum szerkezetének navigációján alapulva. Lehetővé teszi összetett utak építését az elemekhez, attribútumok, tartalom és pozíció szerint.
Használati példák:
# 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']")
A helymeghatározó kiválasztása az oldal stabilitásától és szerkezetétől függ. Ajánlott az ID, CSS Selector vagy XPath használata, ha azok helyesen vannak felépítve.