{"id":37986,"date":"2026-01-20T21:40:48","date_gmt":"2026-01-20T18:40:48","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37986"},"modified":"2026-01-20T21:40:48","modified_gmt":"2026-01-20T18:40:48","slug":"seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/","title":{"rendered":"Selenium&#8217;da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler"},"content":{"rendered":"<p><body><\/p>\n<h2>Selenium&#8217;da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler<\/h2>\n<p>Web otomasyon testlerinde ve veri kaz\u0131ma (web scraping) i\u015flemlerinde Selenium WebDriver, web sayfalar\u0131yla etkile\u015fim kurmak i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r. Selenium&#8217;\u0131n g\u00fcc\u00fcn\u00fcn temelinde, web sayfas\u0131ndaki belirli elementleri bulma ve onlarla etkile\u015fim kurma yetene\u011fi yatar. Bu yetenek, \u00f6zellikle <code>findElement()<\/code> ve <code>findElements()<\/code> metotlar\u0131 arac\u0131l\u0131\u011f\u0131yla sa\u011flan\u0131r. Bu makale, bu iki kritik metodu, aralar\u0131ndaki farklar\u0131, nas\u0131l kullan\u0131lacaklar\u0131n\u0131 ve en iyi uygulama y\u00f6ntemlerini detayl\u0131 \u00f6rneklerle ele alacakt\u0131r.<\/p>\n<h3>Selenium WebDriver ve Web Elementleri<\/h3>\n<p>Selenium WebDriver, taray\u0131c\u0131larla do\u011frudan etkile\u015fim kurarak web uygulamalar\u0131n\u0131 otomatikle\u015ftiren bir API setidir. Bir web sayfas\u0131, metin kutular\u0131, d\u00fc\u011fmeler, ba\u011flant\u0131lar, resimler, tablolar ve daha fazlas\u0131 gibi \u00e7e\u015fitli web elementlerinden olu\u015fur. Selenium ile bu elementleri bulmak, t\u0131klamak, metin girmek, \u00f6zelliklerini okumak gibi i\u015flemler ger\u00e7ekle\u015ftirebiliriz. Elementleri bulmak i\u00e7in kullan\u0131lan anahtar kavram ise &#8220;locator&#8221;lard\u0131r (konumland\u0131r\u0131c\u0131lar).<\/p>\n<h3>Locator&#8217;lar (Konumland\u0131r\u0131c\u0131lar): Web Elementlerini Bulman\u0131n Anahtar\u0131<\/h3>\n<p>Bir web sayfas\u0131ndaki elementleri benzersiz bir \u015fekilde tan\u0131mlamak i\u00e7in \u00e7e\u015fitli stratejiler kullan\u0131l\u0131r. Bu stratejilere locator denir. Selenium, elementleri bulmak i\u00e7in a\u015fa\u011f\u0131daki yayg\u0131n locator t\u00fcrlerini destekler:<\/p>\n<h4>id<\/h4>\n<p>Bir elementin HTML i\u00e7inde benzersiz bir <code>id<\/code> niteli\u011fi varsa, bu en g\u00fcvenilir ve h\u0131zl\u0131 locator&#8217;d\u0131r. HTML standartlar\u0131na g\u00f6re <code>id<\/code> de\u011ferleri sayfa i\u00e7inde benzersiz olmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-java\">\n\/\/ \u00d6rnek HTML: <input type=\"text\" id=\"username\">\nWebElement usernameField = driver.findElement(By.id(\"username\"));\n<\/code><\/pre>\n<h4>name<\/h4>\n<p>Elementin <code>name<\/code> niteli\u011fini kullanarak bulur. Genellikle form elementleri i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-java\">\n\/\/ \u00d6rnek HTML: <input type=\"password\" name=\"sifre\">\nWebElement passwordField = driver.findElement(By.name(\"sifre\"));\n<\/code><\/pre>\n<h4>className<\/h4>\n<p>Elementin <code>class<\/code> niteli\u011fini kullanarak bulur. Birden fazla element ayn\u0131 s\u0131n\u0131fa sahip olabilir, bu y\u00fczden <code>findElement()<\/code> kullan\u0131ld\u0131\u011f\u0131nda ilk e\u015fle\u015fen element d\u00f6nd\u00fcr\u00fcl\u00fcr.<\/p>\n<pre><code class=\"language-java\">\n\/\/ \u00d6rnek HTML: <button class=\"btn btn-primary\">\nWebElement loginButton = driver.findElement(By.className(\"btn-primary\"));\n<\/code><\/pre>\n<h4>tagName<\/h4>\n<p>Elementin HTML etiket ad\u0131n\u0131 kullanarak bulur (\u00f6rn. <code><a><\/code>, <code><\/p>\n<div><\/code>, <code><input><\/code>). Genellikle <code>findElements()<\/code> ile belirli bir t\u00fcrdeki t\u00fcm elementleri toplamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-java\">\n\/\/ \u00d6rnek HTML: <a href=\"...\">Link<\/a>\nWebElement firstLink = driver.findElement(By.tagName(\"a\"));\n<\/code><\/pre>\n<h4>linkText<\/h4>\n<p>Sadece <code><a><\/code> (ba\u011flant\u0131) elementleri i\u00e7in kullan\u0131l\u0131r. Ba\u011flant\u0131n\u0131n tam g\u00f6r\u00fcnen metnini e\u015fle\u015ftirir.<\/p>\n<pre><code class=\"language-java\">\n\/\/ \u00d6rnek HTML: <a href=\"about.html\">Hakk\u0131m\u0131zda<\/a>\nWebElement aboutLink = driver.findElement(By.linkText(\"Hakk\u0131m\u0131zda\"));\n<\/code><\/pre>\n<h4>partialLinkText<\/h4>\n<p>Yine sadece <code><a><\/code> elementleri i\u00e7in kullan\u0131l\u0131r, ancak ba\u011flant\u0131n\u0131n g\u00f6r\u00fcnen metninin bir k\u0131sm\u0131n\u0131 e\u015fle\u015ftirir.<\/p>\n<pre><code class=\"language-java\">\n\/\/ \u00d6rnek HTML: <a href=\"contact.html\">Bize Ula\u015f\u0131n<\/a>\nWebElement contactLink = driver.findElement(By.partialLinkText(\"Ula\u015f\u0131n\"));\n<\/code><\/pre>\n<h4>cssSelector<\/h4>\n<p>CSS se\u00e7icilerini kullanarak elementleri bulur. Olduk\u00e7a g\u00fc\u00e7l\u00fc ve esnektir, genellikle XPath&#8217;ten daha h\u0131zl\u0131d\u0131r ve okunabilirli\u011fi daha iyidir.<\/p>\n<pre><code class=\"language-java\">\n\/\/ ID ile: #username\n\/\/ Class ile: .btn-primary\n\/\/ Tag ve class ile: input.input-field\n\/\/ Nitelik ile: input[name='sifre']\nWebElement usernameField = driver.findElement(By.cssSelector(\"#username\"));\nWebElement loginButton = driver.findElement(By.cssSelector(\".btn-primary\"));\n<\/code><\/pre>\n<h4>xpath<\/h4>\n<p>XML Path Language (XPath) kullanarak elementleri bulur. En g\u00fc\u00e7l\u00fc ve esnek locator&#8217;d\u0131r, ancak karma\u015f\u0131k XPath ifadeleri okunmas\u0131 ve bak\u0131m\u0131 zor olabilir. Hem mutlak (absolute) hem de g\u00f6receli (relative) yollarla kullan\u0131labilir.<\/p>\n<pre><code class=\"language-java\">\n\/\/ Mutlak XPath (genellikle \u00f6nerilmez): \/html\/body\/div[1]\/input[1]\n\/\/ G\u00f6receli XPath: \/\/input[@id='username']\n\/\/ Nitelik i\u00e7eren: \/\/button[text()='Giri\u015f Yap']\nWebElement usernameField = driver.findElement(By.xpath(\"\/\/input[@id='username']\"));\nWebElement loginButton = driver.findElement(By.xpath(\"\/\/button[text()='Giri\u015f Yap']\"));\n<\/code><\/pre>\n<p>Do\u011fru locator&#8217;\u0131 se\u00e7mek, testlerinizin sa\u011flaml\u0131\u011f\u0131 ve performans\u0131 i\u00e7in kritik \u00f6neme sahiptir. Genellikle <code>id<\/code>, ard\u0131ndan <code>name<\/code>, <code>cssSelector<\/code> ve son olarak <code>xpath<\/code> tercih edilir.<\/p>\n<h3><code>findElement()<\/code> Metodu: Tek Bir Elementi Bulma<\/h3>\n<p><code>findElement()<\/code> metodu, web sayfas\u0131nda belirtilen locator stratejisine uyan <em>ilk<\/em> web elementini bulmak ve d\u00f6nd\u00fcrmek i\u00e7in kullan\u0131l\u0131r. E\u011fer hi\u00e7bir element bulunamazsa, bu metod bir <code>NoSuchElementException<\/code> f\u0131rlat\u0131r.<\/p>\n<h4>Kullan\u0131m Amac\u0131<\/h4>\n<ul>\n<li>Belirli bir d\u00fc\u011fmeye t\u0131klamak.<\/li>\n<li>Bir metin kutusuna veri girmek.<\/li>\n<li>Bir elementin metnini veya niteli\u011fini okumak.<\/li>\n<li>Bir elementin varl\u0131\u011f\u0131n\u0131 do\u011frulamak (hata yakalama ile birlikte).<\/li>\n<\/ul>\n<h4>S\u00f6zdizimi (Syntax)<\/h4>\n<pre><code class=\"language-java\">\nWebElement element = driver.findElement(By.locatorStrategy(\"locatorValue\"));\n<\/code><\/pre>\n<h4>D\u00f6n\u00fc\u015f Tipi<\/h4>\n<p><code>findElement()<\/code> metodu, bulunan web elementini temsil eden bir <code>WebElement<\/code> nesnesi d\u00f6nd\u00fcr\u00fcr.<\/p>\n<h4>\u00d6rnek Senaryo ve Kod<\/h4>\n<p>Hayali bir HTML sayfam\u0131z oldu\u011funu varsayal\u0131m:<\/p>\n<pre><code class=\"language-html\">\n<!DOCTYPE html>\n<html>\n<head>\n    <title>Test Sayfas\u0131<\/title>\n<\/head>\n<body>\n    <h1 id=\"mainHeader\">Selenium Test Ba\u015fl\u0131\u011f\u0131<\/h1>\n    <p class=\"intro-paragraph\">Bu bir giri\u015f paragraf\u0131d\u0131r.<\/p>\n\n    <input type=\"text\" id=\"username\" name=\"kullaniciAdi\" placeholder=\"Kullan\u0131c\u0131 Ad\u0131\">\n    <input type=\"password\" class=\"input-field\" name=\"sifre\" placeholder=\"\u015eifre\">\n    <button type=\"submit\" class=\"btn btn-primary\" id=\"loginButton\">Giri\u015f Yap<\/button>\n\n    <a href=\"https:\/\/example.com\/about\" class=\"nav-link\">Hakk\u0131m\u0131zda<\/a>\n    <a href=\"https:\/\/example.com\/contact\" class=\"nav-link\">\u0130leti\u015fim<\/a>\n    <a href=\"https:\/\/example.com\/products\" class=\"nav-link\">\u00dcr\u00fcnler<\/a>\n\n    <div class=\"product-list\">\n        <div class=\"product-item\">\n            <h3>\u00dcr\u00fcn 1<\/h3>\n            <p>A\u00e7\u0131klama 1<\/p>\n        <\/div>\n        <div class=\"product-item\">\n            <h3>\u00dcr\u00fcn 2<\/h3>\n            <p>A\u00e7\u0131klama 2<\/p>\n        <\/div>\n    <\/div>\n<\/body>\n<\/html>\n<\/code><\/pre>\n<p>Bu sayfadaki elementleri <code>findElement()<\/code> kullanarak bulal\u0131m:<\/p>\n<pre><code class=\"language-java\">\nimport org.openqa.selenium.By;\nimport org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.WebElement;\nimport org.openqa.selenium.chrome.ChromeDriver;\nimport org.openqa.selenium.NoSuchElementException; \/\/ Hata yakalama i\u00e7in\n\npublic class FindElementExamples {\n\n    public static void main(String[] args) {\n        \/\/ WebDriver'\u0131 ba\u015flatma (Chrome i\u00e7in)\n        \/\/ System.setProperty(\"webdriver.chrome.driver\", \"\/path\/to\/chromedriver\"); \/\/ Kendi chromedriver yolunuzu belirtin\n        WebDriver driver = new ChromeDriver();\n        driver.manage().window().maximize();\n\n        \/\/ Test edilecek HTML dosyas\u0131n\u0131 a\u00e7ma (yerel dosya veya bir URL olabilir)\n        \/\/ Ger\u00e7ek bir senaryoda bir URL a\u00e7ars\u0131n\u0131z: driver.get(\"https:\/\/www.example.com\");\n        driver.get(\"file:\/\/\/C:\/Users\/YourUser\/Desktop\/test_page.html\"); \/\/ Kendi dosya yolunuzu belirtin\n\n        try {\n            \/\/ 1. By.id ile element bulma\n            WebElement mainHeader = driver.findElement(By.id(\"mainHeader\"));\n            System.out.println(\"Ana Ba\u015fl\u0131k Metni (ID): \" + mainHeader.getText());\n\n            \/\/ 2. By.name ile element bulma\n            WebElement usernameField = driver.findElement(By.name(\"kullaniciAdi\"));\n            usernameField.sendKeys(\"testKullanici\");\n            System.out.println(\"Kullan\u0131c\u0131 Ad\u0131 alan\u0131na metin girildi.\");\n\n            \/\/ 3. By.className ile element bulma\n            WebElement loginButton = driver.findElement(By.className(\"btn-primary\"));\n            System.out.println(\"Giri\u015f D\u00fc\u011fmesi Metni (Class Name): \" + loginButton.getText());\n            \/\/ loginButton.click(); \/\/ D\u00fc\u011fmeye t\u0131klama i\u015flemi\n\n            \/\/ 4. By.tagName ile element bulma (ilk h1 elementi)\n            WebElement firstH1 = driver.findElement(By.tagName(\"h1\"));\n            System.out.println(\"\u0130lk H1 Etiketi Metni (Tag Name): \" + firstH1.getText());\n\n            \/\/ 5. By.linkText ile element bulma\n            WebElement aboutLink = driver.findElement(By.linkText(\"Hakk\u0131m\u0131zda\"));\n            System.out.println(\"Hakk\u0131m\u0131zda Ba\u011flant\u0131s\u0131 Metni (Link Text): \" + aboutLink.getText());\n\n            \/\/ 6. By.partialLinkText ile element bulma\n            WebElement contactLink = driver.findElement(By.partialLinkText(\"\u0130leti\u015fim\"));\n            System.out.println(\"\u0130leti\u015fim Ba\u011flant\u0131s\u0131 Metni (Partial Link Text): \" + contactLink.getText());\n\n            \/\/ 7. By.cssSelector ile element bulma\n            WebElement passwordField = driver.findElement(By.cssSelector(\"input[name='sifre']\"));\n            passwordField.sendKeys(\"gizliSifre\");\n            System.out.println(\"\u015eifre alan\u0131na metin girildi (CSS Selector).\");\n\n            WebElement introParagraph = driver.findElement(By.cssSelector(\"p.intro-paragraph\"));\n            System.out.println(\"Giri\u015f Paragraf\u0131 Metni (CSS Selector): \" + introParagraph.getText());\n\n            \/\/ 8. By.xpath ile element bulma\n            WebElement product1Header = driver.findElement(By.xpath(\"\/\/div[@class='product-item']\/h3[text()='\u00dcr\u00fcn 1']\"));\n            System.out.println(\"\u00dcr\u00fcn 1 Ba\u015fl\u0131\u011f\u0131 Metni (XPath): \" + product1Header.getText());\n\n            \/\/ Var olmayan bir elementi bulmaya \u00e7al\u0131\u015fma (NoSuchElementException f\u0131rlat\u0131r)\n            try {\n                WebElement nonExistentElement = driver.findElement(By.id(\"nonExistent\"));\n                System.out.println(\"Bulunan element: \" + nonExistentElement.getText());\n            } catch (NoSuchElementException e) {\n                System.out.println(\"Hata: 'nonExistent' ID'sine sahip element bulunamad\u0131. (Beklenen hata)\");\n            }\n\n        } catch (NoSuchElementException e) {\n            System.err.println(\"Bir element bulunamad\u0131: \" + e.getMessage());\n        } finally {\n            \/\/ Taray\u0131c\u0131y\u0131 kapatma\n            driver.quit();\n        }\n    }\n}\n<\/code><\/pre>\n<h3><code>findElements()<\/code> Metodu: Birden Fazla Elementi Bulma<\/h3>\n<p><code>findElements()<\/code> metodu, web sayfas\u0131nda belirtilen locator stratejisine uyan <em>t\u00fcm<\/em> web elementlerini bulmak ve bir liste olarak d\u00f6nd\u00fcrmek i\u00e7in kullan\u0131l\u0131r. E\u011fer hi\u00e7bir element bulunamazsa, bu metod bir <code>NoSuchElementException<\/code> f\u0131rlatmaz; bunun yerine bo\u015f bir <code>List<WebElement><\/code> d\u00f6nd\u00fcr\u00fcr. Bu, <code>findElement()<\/code> ile aras\u0131ndaki en \u00f6nemli farklardan biridir.<\/p>\n<h4>Kullan\u0131m Amac\u0131<\/h4>\n<ul>\n<li>Bir sayfadaki t\u00fcm ba\u011flant\u0131lar\u0131 toplamak.<\/li>\n<li>Bir tablodaki t\u00fcm sat\u0131rlar\u0131 veya h\u00fccreleri almak.<\/li>\n<li>Belirli bir s\u0131n\u0131fa sahip t\u00fcm elementleri i\u015flemek.<\/li>\n<li>Dinamik olarak olu\u015fturulan element gruplar\u0131n\u0131 y\u00f6netmek.<\/li>\n<\/ul>\n<h4>S\u00f6zdizimi (Syntax)<\/h4>\n<pre><code class=\"language-java\">\nList<WebElement> elements = driver.findElements(By.locatorStrategy(\"locatorValue\"));\n<\/code><\/pre>\n<h4>D\u00f6n\u00fc\u015f Tipi<\/h4>\n<p><code>findElements()<\/code> metodu, <code>WebElement<\/code> nesnelerinden olu\u015fan bir <code>List<WebElement><\/code> d\u00f6nd\u00fcr\u00fcr.<\/p>\n<h4>\u00d6rnek Senaryo ve Kod<\/h4>\n<p>Yukar\u0131daki ayn\u0131 hayali HTML sayfas\u0131n\u0131 kullanarak <code>findElements()<\/code> ile birden fazla elementi bulal\u0131m:<\/p>\n<pre><code class=\"language-java\">\nimport org.openqa.selenium.By;\nimport org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.WebElement;\nimport org.openqa.selenium.chrome.ChromeDriver;\nimport java.util.List;\n\npublic class FindElementsExamples {\n\n    public static void main(String[] args) {\n        \/\/ WebDriver'\u0131 ba\u015flatma (Chrome i\u00e7in)\n        \/\/ System.setProperty(\"webdriver.chrome.driver\", \"\/path\/to\/chromedriver\"); \/\/ Kendi chromedriver yolunuzu belirtin\n        WebDriver driver = new ChromeDriver();\n        driver.manage().window().maximize();\n\n        \/\/ Test edilecek HTML dosyas\u0131n\u0131 a\u00e7ma\n        driver.get(\"file:\/\/\/C:\/Users\/YourUser\/Desktop\/test_page.html\"); \/\/ Kendi dosya yolunuzu belirtin\n\n        try {\n            \/\/ 1. By.tagName ile t\u00fcm ba\u011flant\u0131lar\u0131 bulma\n            List<WebElement> allLinks = driver.findElements(By.tagName(\"a\"));\n            System.out.println(\"\\n--- T\u00fcm Ba\u011flant\u0131lar (Tag Name: a) ---\");\n            if (allLinks.isEmpty()) {\n                System.out.println(\"Sayfada hi\u00e7 ba\u011flant\u0131 bulunamad\u0131.\");\n            } else {\n                System.out.println(\"Bulunan ba\u011flant\u0131 say\u0131s\u0131: \" + allLinks.size());\n                for (WebElement link : allLinks) {\n                    System.out.println(\"  Metin: \" + link.getText() + \", URL: \" + link.getAttribute(\"href\"));\n                }\n            }\n\n            \/\/ 2. By.className ile belirli bir s\u0131n\u0131fa sahip t\u00fcm elementleri bulma\n            List<WebElement> navLinks = driver.findElements(By.className(\"nav-link\"));\n            System.out.println(\"\\n--- Navigasyon Ba\u011flant\u0131lar\u0131 (Class Name: nav-link) ---\");\n            if (navLinks.isEmpty()) {\n                System.out.println(\"Sayfada 'nav-link' s\u0131n\u0131f\u0131na sahip element bulunamad\u0131.\");\n            } else {\n                System.out.println(\"Bulunan navigasyon ba\u011flant\u0131s\u0131 say\u0131s\u0131: \" + navLinks.size());\n                for (WebElement link : navLinks) {\n                    System.out.println(\"  Metin: \" + link.getText());\n                }\n            }\n\n            \/\/ 3. By.cssSelector ile t\u00fcm \u00fcr\u00fcn \u00f6\u011felerini bulma\n            List<WebElement> productItems = driver.findElements(By.cssSelector(\".product-item\"));\n            System.out.println(\"\\n--- \u00dcr\u00fcn \u00d6\u011feleri (CSS Selector: .product-item) ---\");\n            if (productItems.isEmpty()) {\n                System.out.println(\"Sayfada hi\u00e7 \u00fcr\u00fcn \u00f6\u011fesi bulunamad\u0131.\");\n            } else {\n                System.out.println(\"Bulunan \u00fcr\u00fcn \u00f6\u011fesi say\u0131s\u0131: \" + productItems.size());\n                for (int i = 0; i < productItems.size(); i++) {\n                    WebElement item = productItems.get(i);\n                    \/\/ \u00dcr\u00fcn ba\u015fl\u0131\u011f\u0131n\u0131 ve a\u00e7\u0131klamas\u0131n\u0131 bulma (element i\u00e7inden findElement)\n                    WebElement title = item.findElement(By.tagName(\"h3\"));\n                    WebElement description = item.findElement(By.tagName(\"p\"));\n                    System.out.println(\"  \u00dcr\u00fcn \" + (i + 1) + \": Ba\u015fl\u0131k: \" + title.getText() + \", A\u00e7\u0131klama: \" + description.getText());\n                }\n            }\n\n            \/\/ 4. By.xpath ile t\u00fcm H3 ba\u015fl\u0131klar\u0131n\u0131 bulma\n            List<WebElement> allH3s = driver.findElements(By.xpath(\"\/\/h3\"));\n            System.out.println(\"\\n--- T\u00fcm H3 Ba\u015fl\u0131klar\u0131 (XPath: \/\/h3) ---\");\n            if (allH3s.isEmpty()) {\n                System.out.println(\"Sayfada hi\u00e7 H3 ba\u015fl\u0131\u011f\u0131 bulunamad\u0131.\");\n            } else {\n                System.out.println(\"Bulunan H3 ba\u015fl\u0131\u011f\u0131 say\u0131s\u0131: \" + allH3s.size());\n                for (WebElement h3 : allH3s) {\n                    System.out.println(\"  Ba\u015fl\u0131k: \" + h3.getText());\n                }\n            }\n\n            \/\/ Var olmayan bir locator ile arama (bo\u015f liste d\u00f6nd\u00fcr\u00fcr)\n            List<WebElement> nonExistentElements = driver.findElements(By.id(\"nonExistentClass\"));\n            System.out.println(\"\\n--- Var Olmayan Elementler (ID: nonExistentClass) ---\");\n            if (nonExistentElements.isEmpty()) {\n                System.out.println(\"'nonExistentClass' ID'sine sahip element bulunamad\u0131. (Bo\u015f liste d\u00f6nd\u00fc)\");\n            } else {\n                System.out.println(\"Hata: Var olmayan elementler bulundu!\");\n            }\n\n        } finally {\n            \/\/ Taray\u0131c\u0131y\u0131 kapatma\n            driver.quit();\n        }\n    }\n}\n<\/code><\/pre>\n<h3><code>findElement()<\/code> ve <code>findElements()<\/code> Aras\u0131ndaki Temel Farklar<\/h3>\n<p>Bu iki metod aras\u0131ndaki farklar\u0131 anlamak, test senaryolar\u0131n\u0131z\u0131 do\u011fru bir \u015fekilde tasarlaman\u0131z i\u00e7in hayati \u00f6neme sahiptir:<\/p>\n<table border=\"1\" cellpadding=\"5\" cellspacing=\"0\">\n<thead>\n<tr>\n<th>\u00d6zellik<\/th>\n<th><code>findElement()<\/code><\/th>\n<th><code>findElements()<\/code><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Ama\u00e7<\/strong><\/td>\n<td>Tek bir web elementi bulmak.<\/td>\n<td>Belirli bir kritere uyan t\u00fcm web elementlerini bulmak.<\/td>\n<\/tr>\n<tr>\n<td><strong>D\u00f6n\u00fc\u015f Tipi<\/strong><\/td>\n<td><code>WebElement<\/code><\/td>\n<td><code>List<WebElement><\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Element Bulunamazsa<\/strong><\/td>\n<td><code>NoSuchElementException<\/code> f\u0131rlat\u0131r.<\/td>\n<td>Bo\u015f bir <code>List<WebElement><\/code> d\u00f6nd\u00fcr\u00fcr. Hata f\u0131rlatmaz.<\/td>\n<\/tr>\n<tr>\n<td><strong>Kullan\u0131m Senaryosu<\/strong><\/td>\n<td>Tekil bir form alan\u0131, d\u00fc\u011fme, ba\u015fl\u0131k vb. ile etkile\u015fim kurmak.<\/td>\n<td>Bir sayfadaki t\u00fcm ba\u011flant\u0131lar\u0131, tablo sat\u0131rlar\u0131n\u0131, \u00fcr\u00fcn kartlar\u0131n\u0131 vb. toplamak ve i\u015flemek.<\/td>\n<\/tr>\n<tr>\n<td><strong>Performans<\/strong><\/td>\n<td>Genellikle daha h\u0131zl\u0131d\u0131r \u00e7\u00fcnk\u00fc ilk e\u015fle\u015fmeyi buldu\u011funda durur.<\/td>\n<td>T\u00fcm e\u015fle\u015fmeleri bulmak i\u00e7in sayfan\u0131n tamam\u0131n\u0131 tarayabilir, bu nedenle daha yava\u015f olabilir.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>En \u0130yi Uygulamalar ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>Selenium ile elementleri bulurken verimlili\u011fi, sa\u011flaml\u0131\u011f\u0131 ve bak\u0131m kolayl\u0131\u011f\u0131n\u0131 art\u0131rmak i\u00e7in baz\u0131 en iyi uygulamalar mevcuttur:<\/p>\n<h4>1. Sa\u011flam Locator&#8217;lar Se\u00e7in<\/h4>\n<ul>\n<li><strong><code>id<\/code>&#8216;yi Tercih Edin:<\/strong> M\u00fcmk\u00fcnse her zaman <code>id<\/code> kullan\u0131n. En h\u0131zl\u0131 ve en g\u00fcvenilir locator&#8217;d\u0131r \u00e7\u00fcnk\u00fc benzersiz olmas\u0131 beklenir.<\/li>\n<li><strong><code>name<\/code> ve <code>className<\/code>:<\/strong> E\u011fer <code>id<\/code> yoksa, <code>name<\/code> veya benzersiz bir <code>className<\/code> deneyin.<\/li>\n<li><strong><code>cssSelector<\/code> Kullan\u0131n:<\/strong> <code>cssSelector<\/code>, <code>xpath<\/code>&#8216;e g\u00f6re genellikle daha h\u0131zl\u0131, daha okunakl\u0131 ve daha az k\u0131r\u0131lgand\u0131r. \u00d6zellikle karma\u015f\u0131k elementleri bulmak i\u00e7in g\u00fc\u00e7l\u00fc bir alternatiftir.<\/li>\n<li><strong><code>xpath<\/code>&#8216;i Dikkatli Kullan\u0131n:<\/strong> Sadece <code>cssSelector<\/code>&#8216;\u0131n yetersiz kald\u0131\u011f\u0131 durumlarda (\u00f6rn. \u00fcst elemente g\u00f6re arama, metin i\u00e7eri\u011fine g\u00f6re arama) <code>xpath<\/code> kullan\u0131n. G\u00f6receli XPath kullanmaya \u00f6zen g\u00f6sterin (<code>\/\/div[@id='myDiv']<\/code> yerine <code>\/html\/body\/div[1]\/div[2]<\/code> gibi mutlak XPath&#8217;lerden ka\u00e7\u0131n\u0131n).<\/li>\n<li><strong>Dinamik De\u011ferlerden Ka\u00e7\u0131n\u0131n:<\/strong> Otomatik olarak olu\u015fturulan veya her y\u00fcklemede de\u011fi\u015fen <code>id<\/code>&#8216;ler veya <code>class<\/code>&#8216;lardan ka\u00e7\u0131n\u0131n.<\/li>\n<\/ul>\n<h4>2. Beklemeler (Waits) Kullan\u0131n<\/h4>\n<p>Modern web uygulamalar\u0131 dinamiktir. Elementler sayfa y\u00fcklendikten sonra AJAX \u00e7a\u011fr\u0131lar\u0131 veya JavaScript etkile\u015fimleri ile g\u00f6r\u00fcnebilir, kaybolabilir veya de\u011fi\u015febilir. Elementleri bulmaya \u00e7al\u0131\u015fmadan \u00f6nce uygun beklemeleri kullanmak, <code>NoSuchElementException<\/code> hatalar\u0131n\u0131 \u00f6nler ve testlerinizin daha sa\u011flam olmas\u0131n\u0131 sa\u011flar.<\/p>\n<ul>\n<li><strong>Implicit Wait (\u00d6rt\u00fcl\u00fc Bekleme):<\/strong> WebDriver&#8217;a, bir elementi bulmaya \u00e7al\u0131\u015f\u0131rken belirli bir s\u00fcre boyunca beklemesini s\u00f6yler. Bir kez ayarland\u0131\u011f\u0131nda, t\u00fcm <code>findElement()<\/code> ve <code>findElements()<\/code> \u00e7a\u011fr\u0131lar\u0131 i\u00e7in ge\u00e7erlidir.<\/li>\n<pre><code class=\"language-java\">\n    driver.manage().timeouts().implicitlyWait(java.time.Duration.ofSeconds(10));\n    <\/code><\/pre>\n<li><strong>Explicit Wait (A\u00e7\u0131k Bekleme):<\/strong> Belirli bir ko\u015fulun ger\u00e7ekle\u015fmesini beklemek i\u00e7in kullan\u0131l\u0131r. Daha esnektir ve belirli bir elementin g\u00f6r\u00fcn\u00fcr, t\u0131klanabilir veya mevcut olmas\u0131n\u0131 beklemek gibi senaryolarda \u00e7ok etkilidir.<\/li>\n<pre><code class=\"language-java\">\n    import org.openqa.selenium.support.ui.WebDriverWait;\n    import org.openqa.selenium.support.ui.ExpectedConditions;\n    import java.time.Duration;\n\n    WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));\n    WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(\"myElement\")));\n    <\/code><\/pre>\n<\/ul>\n<h4>3. Hata Y\u00f6netimi<\/h4>\n<ul>\n<li><strong><code>findElement()<\/code> i\u00e7in <code>try-catch<\/code>:<\/strong> E\u011fer bir elementin varl\u0131\u011f\u0131 opsiyonelse veya bulunamayabilece\u011fi bir senaryo varsa, <code>NoSuchElementException<\/code>&#8216;\u0131 yakalamak i\u00e7in <code>try-catch<\/code> bloklar\u0131 kullan\u0131n.<\/li>\n<li><strong><code>findElements()<\/code> i\u00e7in <code>isEmpty()<\/code> Kontrol\u00fc:<\/strong> <code>findElements()<\/code> bo\u015f bir liste d\u00f6nd\u00fcrd\u00fc\u011f\u00fcnde hata f\u0131rlatmad\u0131\u011f\u0131 i\u00e7in, liste \u00fczerinde i\u015flem yapmadan \u00f6nce <code>list.isEmpty()<\/code> metodunu kullanarak listenin bo\u015f olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/li>\n<\/ul>\n<h4>4. Element Zincirleme (Chaining)<\/h4>\n<p>Bazen bir elementin alt\u0131ndaki bir elementi bulman\u0131z gerekebilir. Bu durumda, \u00f6nce ana elementi bulup, ard\u0131ndan bu element \u00fczerinden <code>findElement()<\/code> veya <code>findElements()<\/code> \u00e7a\u011f\u0131rabilirsiniz. Bu, locator&#8217;lar\u0131n\u0131z\u0131 daha k\u0131sa ve okunabilir hale getirebilir.<\/p>\n<pre><code class=\"language-java\">\n\/\/ product-list div'i i\u00e7indeki t\u00fcm product-item'lar\u0131 bulma\nWebElement productListDiv = driver.findElement(By.className(\"product-list\"));\nList<WebElement> productItems = productListDiv.findElements(By.className(\"product-item\"));\n\nfor (WebElement item : productItems) {\n    WebElement productTitle = item.findElement(By.tagName(\"h3\"));\n    System.out.println(\"\u00dcr\u00fcn Ba\u015fl\u0131\u011f\u0131: \" + productTitle.getText());\n}\n<\/code><\/pre>\n<h4>5. Page Object Model (POM) Kullan\u0131m\u0131<\/h4>\n<p>B\u00fcy\u00fck projelerde, locator&#8217;lar\u0131 ve elementlerle etkile\u015fim metotlar\u0131n\u0131 ayr\u0131 s\u0131n\u0131f dosyalar\u0131nda (Page Objects) tan\u0131mlamak, kodunuzun daha d\u00fczenli, okunabilir ve bak\u0131m\u0131 kolay olmas\u0131n\u0131 sa\u011flar. Bu yakla\u015f\u0131m, element locator&#8217;lar\u0131n\u0131n tek bir yerde tan\u0131mlanmas\u0131n\u0131 ve gerekti\u011finde kolayca g\u00fcncellenmesini sa\u011flar.<\/p>\n<h3>Geli\u015fmi\u015f Konulara K\u0131sa Bir Bak\u0131\u015f<\/h3>\n<p><code>findElement<\/code> ve <code>findElements<\/code> metotlar\u0131 temel olsa da, web otomasyonunda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 daha karma\u015f\u0131k senaryolar vard\u0131r:<\/p>\n<ul>\n<li><strong>Iframes (\u00c7er\u00e7eveler):<\/strong> Bir web sayfas\u0131 i\u00e7inde ba\u015fka bir web sayfas\u0131 bar\u0131nd\u0131ran <code><iframe><\/code> elementleri, kendi context&#8217;lerine sahiptir. Bu t\u00fcr elementlerin i\u00e7indeki \u00f6\u011feleri bulmak i\u00e7in \u00f6nce WebDriver&#8217;\u0131n o iframe&#8217;e ge\u00e7i\u015f yapmas\u0131 gerekir (<code>driver.switchTo().frame(\"iframe_id_or_name\")<\/code>). \u0130\u015finiz bitti\u011finde ana \u00e7er\u00e7eveye geri d\u00f6nmeyi unutmay\u0131n (<code>driver.switchTo().defaultContent()<\/code>).<\/li>\n<li><strong>Shadow DOM:<\/strong> Baz\u0131 modern web bile\u015fenleri Shadow DOM kullan\u0131r. Shadow DOM i\u00e7indeki elementlere do\u011frudan standart Selenium locator&#8217;lar ile eri\u015fmek m\u00fcmk\u00fcn de\u011fildir. JavaScript executor veya \u00f6zel Selenium eklentileri gerekebilir.<\/li>\n<li><strong>Dinamik Tablolar ve Listeler:<\/strong> Sayfadaki verilerin s\u00fcrekli de\u011fi\u015fti\u011fi veya filtrelendi\u011fi durumlarda, <code>findElements()<\/code> ve ard\u0131ndan liste \u00fczerinde filtreleme\/d\u00f6ng\u00fc i\u015flemleri yapmak yayg\u0131n bir yakla\u015f\u0131md\u0131r.<\/li>\n<\/ul>\n<h3>Sonu\u00e7<\/h3>\n<p><code>findElement()<\/code> ve <code>findElements()<\/code> metotlar\u0131, Selenium WebDriver ile web elementlerini bulman\u0131n temel ta\u015flar\u0131d\u0131r. Bu metotlar\u0131 ve farkl\u0131 locator stratejilerini ustaca kullanmak, sa\u011flam, verimli ve bak\u0131m\u0131 kolay otomasyon betikleri yazman\u0131n anahtar\u0131d\u0131r. Locator&#8217;lar\u0131 dikkatli se\u00e7mek, beklemeleri do\u011fru uygulamak ve hata y\u00f6netimini g\u00f6z \u00f6n\u00fcnde bulundurmak, otomasyon projelerinizin ba\u015far\u0131s\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu makalede sunulan \u00f6rnekler ve en iyi uygulamalar, Selenium yolculu\u011funuzda size rehberlik edecektir. Pratik yaparak ve farkl\u0131 web siteleri \u00fczerinde deneyler yaparak bu becerilerinizi daha da geli\u015ftirebilirsiniz.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Selenium&#8217;da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler\nWeb otomasyon testlerinde ve veri kaz\u0131ma (web scraping) i\u015flem","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-37986","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Selenium&#039;da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Selenium&#039;da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler\" \/>\n<meta property=\"og:description\" content=\"Selenium&#039;da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler Web otomasyon testlerinde ve veri kaz\u0131ma (web scraping) i\u015flem\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-20T18:40:48+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Selenium&#8217;da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler\",\"datePublished\":\"2026-01-20T18:40:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/\"},\"wordCount\":1512,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/\",\"name\":\"Selenium'da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-20T18:40:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Selenium&#8217;da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Selenium'da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/","og_locale":"tr_TR","og_type":"article","og_title":"Selenium'da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler","og_description":"Selenium'da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler Web otomasyon testlerinde ve veri kaz\u0131ma (web scraping) i\u015flem","og_url":"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-20T18:40:48+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"13 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Selenium&#8217;da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler","datePublished":"2026-01-20T18:40:48+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/"},"wordCount":1512,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/","url":"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/","name":"Selenium'da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-20T18:40:48+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/seleniumda-findelement-ve-findelements-metotlari-kapsamli-bir-rehber-ve-ornekler\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Selenium&#8217;da findElement ve findElements Metotlar\u0131: Kapsaml\u0131 Bir Rehber ve \u00d6rnekler"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37986"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37986\/revisions"}],"predecessor-version":[{"id":37987,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37986\/revisions\/37987"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}