SlideShare a Scribd company logo
1 of 3
Download to read offline
Selenium 2 Cheat Sheet
Selenium 2 Cheat Sheet
Navigation
u iki metot aynı görevi yerine getirir, Her ikisi de belli
bir url’yi açar:
• <WebDriver>.get(<Url>)
• <WebDriver>.navigate.to(<Url>)
Bulunulan sayfayı yenilemek için u metot kullanılabilir:
• <WebDriver>.navigate.refresh()
<WebDriver> ile kastedilen,
private WebDriver driver = new FirefoxDriver();
örne indeki “driver” nesnesidir, yani bu örnek için:
• driver.get(“www.google.com.tr”); olacaktır,
ya da
• driver.navigate.to(“www.google.com.tr”);
• driver.navigate.refresh();
XPath & CSSSelector:
“div.foo” tag adı div olan ve “class” attribute’ünde
“foo” geçen, sayfadaki bütün web elemanlarını bulur,
xpath ile:
“//div[@class=’foo’]”
“div.foo.bar[title^="Help"]” tag adı div olan ve
“class” attribute’ünde “foo” ve “bar”geçen ve title’ı
“Help” ile ba layanları bulur.
“div.foo.bar[title$="Help"]” tag adı div olan ve
“class” attribute’ünde “foo” ve “bar”geçen ve title’ı
“Help” ile bitenleri bulur.
“div.foo.bar[title*="Help"]” tag adı div olan ve
“class” attribute’ünde “foo” ve “bar”geçen ve title’ı
“Help” içerenleri bulur (title’ın içinde herhangi bir
yerde “Help” kelimesi geçiyorsa), xpath ile:
“//div[@class=’foo bar’][contains(@title,'Help')]”
“ul#navigation” id’si “navigation” olan, sayfadaki
bütün “ul” web elemanlarını bulur, xpath ile:
“//ul[@id=’navigation’]”
“a[href^=”http://”]” href’i “http://” ile ba layan,
sayfadaki bütün “a” web elemanlarını bulur.
“input[type="submit"]” type’ı “submit” olan,
sayfadaki bütün “input” web elemanlarını bulur, xpath
ile:
“//input[@type=’submit’]”
u web elemanını içerdi i metne göre bulmak istersek:
<a href="url/New-Doc" target="_top" fahidden="false"
faswid="e-switcher-mail" faprop="p-e-switcher-function-
id">Mail</a>
<WebDriver>.findElement(By.cssSelector("a:contains('M
ail')”));
diyebiliriz, xpath ile ise öyle bulunur:
< W e b D r i v e r > . f i n d E l e m e n t ( B y. x P a t h ( " / /
a[text()='Mail']"));
Interrogation (Inspection)
Mozilla Firefox browser’ı için “Firebug” addon’unun
eklenmesi gerekmekte, “Firebug” kullanılması web
elemanlarının belirlenmesini kolayla tırır. Ayrıca
“Firepath” tabına xpath ya da cssSelector yazıldı ında
ilgili elemanı gösterir.
Bulunulan sayfanın ba lı ını (title) döndürür:
)(eltiTteg.>revirDbeW<
driver.getTitle()
Bulunulan sayfanın url’sini döndürür:
)(lrUtnerruCteg.>revirDbeW<
diver.getCurrentUrl()
Bulunulan sayfanın sayfa kayna ını döndürür:
)(ecruoSegaPteg.>revirDbeW<
driver.getPageSource()
<WebElement> ile kastedilen sayfadaki <div>, <input>,
<label>, <select>, <table>, <tbody>, <tr>, <td>, <ul>,
<li> gibi elemanlardan herhangi biridir, örne in:
WebElement table =
<WebDriver>.findElement(By.id(“containerTable”));
le bir tabloyu alabiliriz, bu tablodaki bütün satırları(tr)
almak için:
List<WebElement> allRows =
table.findElements(By.tagName(“tr”));
le tablodaki bütün satırlar “allRows” Listine kopyalanır,
“List<WebElement>” ile List içindeki bütün ö elerin
tipinin “WebElement” oldu unu belirtiyoruz, farklı tipte
bir ö e bu List’e kopyalanamaz.
Bir sayfa elemanını bulmak için id, xpath, cssSelector,
className veya tagName kullanılabilir:
• <WebElement>.findElement(By.id(“”))
• <WebElement>.findElement(By.xpath(“”))
• <WebElement>.findElement(By.cssSelector(“”))
• <WebElement>.findElement(By.className(“”))
• <WebElement>.findElement(By.tagName(“”))
Bir web elemanının içerdi i metni almak için:
<WebElement>.getText()
Bir web elemanının belli bir attribute de erini almak
için:
• <WebElement>.getAttribute()
• <WebElement>.getAttribute(“class”)
• <WebElement>.getAttribute(“value”)
Bir web elemanına ait tag adını almak için:
<WebElement>.getTagName()
Web elemanının durumunu control etmek için:
• <WebElement>.isDisplayed()
• <WebElement>.isEnabled()
• <WebElement>.isSelected()
“findElement” ile aradı ını bulamazsa, önce timeout
süresi kadar bekler, sonra exception fırlatır (Unable to
locate element), bunun yerine “findElements(By....
()).size()” kullanılabilir, e er size()==0 ise, bu aranan
elemanın bulunamadı ı anlamına gelir, böylece timeout
süresi kadar beklemeye gerek kalmaz.
Manipulation (Interaction)
<WebElement>.click()
<WebElement>.clear()
Bazı durumlarda seçim yapma i lemini tamamlamak için
sendKeys’ten sonra “sendKeys(Keys.ENTER)”,
göndermek gerekebilir.
<WebElement>.sendKeys()
<WebElement>.sendKeys(Keys.ENTER)
E er bir combobox’tan seçim yapmakta zorlanılıyor ise
“sendKeys(Keys.ARROWDOWN)” metodu ile bir sonraki
seçene e ula ılabilir.
<WebElement>.sendKeys(Keys.ARROWDOWN)
Alternatif bir yöntem olarak combobox’a, istenilen
s e ç e n e ,rilibelirednögifrahklini
<WebElement>.sendKeys(“A”) gibi, bu durumda
comboboxtan “A” ile ba layan ilk seçenek seçilecektir.
Kodun hem Mac’te hem de Windows’ta çalı ması
isteniyorsa
< S e l e c t > . s e l e c t B y V i s i b l e T e x t ( ) v e
<Select>.selectByIndex() yerine
<Select>.getOptions().get(index) kullanılmalı.
Alternatif bir tıklama yöntemi olarak u kullanılabilir:
wen
Actions(<WebDriver>).moveToElement( <WebElement> )
.click().build().perform()
Checkbox’lar tıklanırken Windows’ta çalı an kod Mac’te
çalı mayabilir, buna dikkat etmek gerek, yazılan kodun,
checkbox’ın tam olarak içini aldı ına dikkat etmek
gerekli (Mac için).
Synchronization
Senkronizasyon açısından her click(), sendKeys() veya
select i leminden hemen sonra bekletme yapan kod
eklenmelidir, bu bir WebDriverWait() nesnesi de olabilir
veya AJAX’ın tamamlanmasını bekleyen bir kod da
olabilir.
• Explicit Wait örne i:
WebDriverWait wait= new WebDriverWait(driver,20 );
wait.until( ExpectedConditions.visibilityOfElementLocat
ed (By.xpath("//*[@id='someId']")));
• Implicit Wait örne i:
driver.manage().timeouts().implicitlyWait(30,
TimeUnit.SECONDS);
Domain
• Cookies
<WebDriver>.manage().deleteAllCookies();
sadece bulundu unuz domaindeki cookie’leri siler.
<WebDriver> ile kastedilen,
private WebDriver driver = new FirefoxDriver();
örne indeki “driver” nesnesidir, yani bu örnek için:
driver.manage().deleteAllCookies(); olacaktır.
• Windows
Bulunulan pencerenin String tipinde handle’ını almak
için:
<WebDriver>.getWindowHandle()
<WebDriver>.getWindowHandles() , açık olan bütün
pencerelerin String tipinde handle’larını içeren bir Set
döndürür.
<WebDriver>.switchTo().window(<WindowHandle>);
Bütün window-handle’lar alınıp bir döngü içinde birer
birer sırayla hepsine focuslanırsa(switchTo), en son
açılan pencere focuslanılmı (switchTo) olur.
//Store the current window handle
String windowHandleBefore =
driver.getWindowHandle();
//Switch to new window opened
Set<string> windowHandles =
driver.getWindowHandles();
for(String windowHandle : windowHandles){
driver.switchTo().window(windowHandle);}
<WebDriver>.manage().window().maximize();
bazı testcase’ler ko ulurken e er pencere tam boyutlu
de ilse fail olabiliyor , bu nedenle testin ba ında
pencerenin tam boyutlu hale getirilmesinde fayda var.
• Frames
E er yeni bir frame açıldıysa bu frame’e focuslanmak
için unlar kullanılabilir:
<WebDriver>.switchTo().frame(<name_or_id>)
<WebDriver>.switchTo().frame(<index>)
<WebDriver>.switchTo().frame(<WebElement>)
Yeni açılan frame’den önceki sayfaya dönmek için de u
kullanılabilir:
<WebDriver>.switchTo().defaultContent() , e er bu
çalı mazsa,
driver.switchTo().window(<WindowName>) kullanılabilir.
• JavascriptExecutor
Java kodu içinde Javascript çalı tırmak mümkün, bunun
için u kullanılabilir:
((JavascriptExecutor)<WebDriver>).executeScript(“alert
('hello world');”)
Bu örnekte, “hello world” yazısı içeren bir alert
görüntülenir.
Örne in, öyle bir sayfa elemanını görünür yapmak için,
<select id="periodId" name="period" style="display:
none;">
öyle bir kod kullanılabilir:
JavascriptExecutor executor =
(JavascriptExecutor)<WebDriver>;
executor.executeScript("document.getElementById('peri
odId').style.display='block';");
• Alerts
Açılan Alert penceresine focuslanmak için u
kullanılabilir:
<WebDriver>.switchTo().alert();
<Alert> için kullanılabilecek bazı metotlar unlar:
<Alert>. accept()
<Alert>. dismiss()
<Alert>. getText()
www.keytorc.com
blogs.keytorc.com
Telefon : +90 212 290 76 60
E-posta : info@keytorc.com
Se

More Related Content

Viewers also liked

Cool marka Olma Sanatı
Cool marka Olma SanatıCool marka Olma Sanatı
Cool marka Olma Sanatıismail Dağlı
 
Berka Adworks / Ajans Sunumu
Berka Adworks / Ajans SunumuBerka Adworks / Ajans Sunumu
Berka Adworks / Ajans SunumuBerkaAdworks
 
Concept tanıtım sunumu eylul 2012
Concept tanıtım sunumu eylul 2012Concept tanıtım sunumu eylul 2012
Concept tanıtım sunumu eylul 2012conceptreklam
 
Markam Tanıtım Sunumu 2013
Markam Tanıtım Sunumu 2013Markam Tanıtım Sunumu 2013
Markam Tanıtım Sunumu 2013markamtr
 
Reklamcılık Projesi
Reklamcılık ProjesiReklamcılık Projesi
Reklamcılık ProjesiGozde Ozata
 
Young Felis Reklamcılık Yarışması 1.liği
Young Felis Reklamcılık Yarışması 1.liğiYoung Felis Reklamcılık Yarışması 1.liği
Young Felis Reklamcılık Yarışması 1.liğiKadir Has Üniversitesi
 
Gundem Trend Raporu-Şubat 2016
Gundem Trend Raporu-Şubat 2016Gundem Trend Raporu-Şubat 2016
Gundem Trend Raporu-Şubat 2016Manifesto
 
Seratonin Ajans Sunumu
Seratonin Ajans SunumuSeratonin Ajans Sunumu
Seratonin Ajans SunumuMehmet Bali
 
A Awards Junior 2.liği - Üniversiteliler Ödülü / 2017
A Awards Junior 2.liği - Üniversiteliler Ödülü / 2017A Awards Junior 2.liği - Üniversiteliler Ödülü / 2017
A Awards Junior 2.liği - Üniversiteliler Ödülü / 2017Kadir Has Üniversitesi
 
kidstory - project presentation
kidstory - project presentationkidstory - project presentation
kidstory - project presentationOnur Bayrak
 
Concept tanıtım sunumu eylul 2012
Concept tanıtım sunumu eylul 2012Concept tanıtım sunumu eylul 2012
Concept tanıtım sunumu eylul 2012conceptreklam
 
Uzayda Türkler Var Atölyesi Sunumu
Uzayda Türkler Var Atölyesi SunumuUzayda Türkler Var Atölyesi Sunumu
Uzayda Türkler Var Atölyesi SunumuOğuzhan KAYAR
 

Viewers also liked (20)

Cool marka Olma Sanatı
Cool marka Olma SanatıCool marka Olma Sanatı
Cool marka Olma Sanatı
 
Berka Adworks / Ajans Sunumu
Berka Adworks / Ajans SunumuBerka Adworks / Ajans Sunumu
Berka Adworks / Ajans Sunumu
 
Concept tanıtım sunumu eylul 2012
Concept tanıtım sunumu eylul 2012Concept tanıtım sunumu eylul 2012
Concept tanıtım sunumu eylul 2012
 
Keytorc Proje Ekibi Zubizu Sunumu - Ozan İlhan
Keytorc Proje Ekibi Zubizu Sunumu - Ozan İlhanKeytorc Proje Ekibi Zubizu Sunumu - Ozan İlhan
Keytorc Proje Ekibi Zubizu Sunumu - Ozan İlhan
 
Markam Tanıtım Sunumu 2013
Markam Tanıtım Sunumu 2013Markam Tanıtım Sunumu 2013
Markam Tanıtım Sunumu 2013
 
Reklamcılık Projesi
Reklamcılık ProjesiReklamcılık Projesi
Reklamcılık Projesi
 
A Awards Junior Finalistliği 2016
A Awards Junior Finalistliği 2016A Awards Junior Finalistliği 2016
A Awards Junior Finalistliği 2016
 
A Awards Junior Finalistliği (2015)
A Awards Junior Finalistliği (2015)A Awards Junior Finalistliği (2015)
A Awards Junior Finalistliği (2015)
 
Insights Quarterly - Ekim 2017
Insights Quarterly - Ekim 2017Insights Quarterly - Ekim 2017
Insights Quarterly - Ekim 2017
 
Young Felis Reklamcılık Yarışması 1.liği
Young Felis Reklamcılık Yarışması 1.liğiYoung Felis Reklamcılık Yarışması 1.liği
Young Felis Reklamcılık Yarışması 1.liği
 
2016 04 21 Digiboard proje sunumu
2016 04 21 Digiboard proje sunumu2016 04 21 Digiboard proje sunumu
2016 04 21 Digiboard proje sunumu
 
Gundem Trend Raporu-Şubat 2016
Gundem Trend Raporu-Şubat 2016Gundem Trend Raporu-Şubat 2016
Gundem Trend Raporu-Şubat 2016
 
Snapchat 101
Snapchat 101Snapchat 101
Snapchat 101
 
Gmw2016 sunum
Gmw2016 sunumGmw2016 sunum
Gmw2016 sunum
 
Seratonin Ajans Sunumu
Seratonin Ajans SunumuSeratonin Ajans Sunumu
Seratonin Ajans Sunumu
 
A Awards Junior 2.liği - Üniversiteliler Ödülü / 2017
A Awards Junior 2.liği - Üniversiteliler Ödülü / 2017A Awards Junior 2.liği - Üniversiteliler Ödülü / 2017
A Awards Junior 2.liği - Üniversiteliler Ödülü / 2017
 
kidstory - project presentation
kidstory - project presentationkidstory - project presentation
kidstory - project presentation
 
Fabay Firma Sunumu
Fabay Firma SunumuFabay Firma Sunumu
Fabay Firma Sunumu
 
Concept tanıtım sunumu eylul 2012
Concept tanıtım sunumu eylul 2012Concept tanıtım sunumu eylul 2012
Concept tanıtım sunumu eylul 2012
 
Uzayda Türkler Var Atölyesi Sunumu
Uzayda Türkler Var Atölyesi SunumuUzayda Türkler Var Atölyesi Sunumu
Uzayda Türkler Var Atölyesi Sunumu
 

Similar to Selenium 2- Keytorc Test Automation Cheatsheet

İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13Cihan Özhan
 
Mutant Web Applications
Mutant Web ApplicationsMutant Web Applications
Mutant Web Applicationsguest096801
 
Spring uygulamaların exception handling yönetimi
Spring uygulamaların exception handling yönetimiSpring uygulamaların exception handling yönetimi
Spring uygulamaların exception handling yönetimiSistek Yazılım
 
Javascript Performance Optimisation
Javascript Performance OptimisationJavascript Performance Optimisation
Javascript Performance Optimisationirfandurmus
 
Temel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, ImageTemel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, Imagecmkandemir
 
Java ve axis2 framework ile web service yayınlamak
Java ve axis2 framework ile web service yayınlamakJava ve axis2 framework ile web service yayınlamak
Java ve axis2 framework ile web service yayınlamakTayfun Çelik
 
İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09Cihan Özhan
 
Temel HTML Etiketleri ve Kullanım Örnekleri
Temel HTML Etiketleri ve Kullanım ÖrnekleriTemel HTML Etiketleri ve Kullanım Örnekleri
Temel HTML Etiketleri ve Kullanım Örneklericmkandemir
 
ASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa DetaylarıASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa Detaylarızetshap
 

Similar to Selenium 2- Keytorc Test Automation Cheatsheet (19)

İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13İleri Seviye T-SQL Programlama - Chapter 13
İleri Seviye T-SQL Programlama - Chapter 13
 
Mutant Web Applications
Mutant Web ApplicationsMutant Web Applications
Mutant Web Applications
 
Spring uygulamaların exception handling yönetimi
Spring uygulamaların exception handling yönetimiSpring uygulamaların exception handling yönetimi
Spring uygulamaların exception handling yönetimi
 
Jsf
JsfJsf
Jsf
 
15 Dakikada jQuery
15 Dakikada jQuery15 Dakikada jQuery
15 Dakikada jQuery
 
Javascript Performance Optimisation
Javascript Performance OptimisationJavascript Performance Optimisation
Javascript Performance Optimisation
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
BTRİSK Web Uygulama Güvenliği Denetimi EğitimiBTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
BTRİSK Web Uygulama Güvenliği Denetimi Eğitimi
 
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim SunumuBTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
BTRİSK Web Uygulama Güvenliği Denetimi Eğitim Sunumu
 
Temel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, ImageTemel HTML Etiketleri - Text, Image, Link, List, Image
Temel HTML Etiketleri - Text, Image, Link, List, Image
 
Java ve axis2 framework ile web service yayınlamak
Java ve axis2 framework ile web service yayınlamakJava ve axis2 framework ile web service yayınlamak
Java ve axis2 framework ile web service yayınlamak
 
Asp.net ajax
Asp.net ajaxAsp.net ajax
Asp.net ajax
 
Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor? Radore Workshop: Wordpress Nereye Koşuyor?
Radore Workshop: Wordpress Nereye Koşuyor?
 
İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09İleri Seviye T-SQL Programlama - Chapter 09
İleri Seviye T-SQL Programlama - Chapter 09
 
Temel HTML Etiketleri ve Kullanım Örnekleri
Temel HTML Etiketleri ve Kullanım ÖrnekleriTemel HTML Etiketleri ve Kullanım Örnekleri
Temel HTML Etiketleri ve Kullanım Örnekleri
 
Richfaces
RichfacesRichfaces
Richfaces
 
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
 
ASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa DetaylarıASP.NET C# - Sayfa Detayları
ASP.NET C# - Sayfa Detayları
 
Php1
Php1Php1
Php1
 

More from Keytorc Software Testing Services (10)

Bir Test Uzmanına Söylenmemesi Gereken Şeyler
Bir Test Uzmanına Söylenmemesi Gereken ŞeylerBir Test Uzmanına Söylenmemesi Gereken Şeyler
Bir Test Uzmanına Söylenmemesi Gereken Şeyler
 
Cloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak KoyuncuCloud for Agile Testing - Burak Koyuncu
Cloud for Agile Testing - Burak Koyuncu
 
Keytorc Proje Ekibi Zubizu Sunumu - Miray Doğan
Keytorc Proje Ekibi Zubizu Sunumu - Miray DoğanKeytorc Proje Ekibi Zubizu Sunumu - Miray Doğan
Keytorc Proje Ekibi Zubizu Sunumu - Miray Doğan
 
Keytorc Proje Ekibi Zubizu Sunumu - Emirhan Şen
Keytorc Proje Ekibi Zubizu Sunumu - Emirhan ŞenKeytorc Proje Ekibi Zubizu Sunumu - Emirhan Şen
Keytorc Proje Ekibi Zubizu Sunumu - Emirhan Şen
 
JMeter Database Performace Testing - Keytorc Approach
JMeter Database Performace Testing - Keytorc ApproachJMeter Database Performace Testing - Keytorc Approach
JMeter Database Performace Testing - Keytorc Approach
 
Version Control CheatSheet - Git
Version Control CheatSheet - GitVersion Control CheatSheet - Git
Version Control CheatSheet - Git
 
Test Data Management - Keytorc Approach
Test Data Management - Keytorc ApproachTest Data Management - Keytorc Approach
Test Data Management - Keytorc Approach
 
Testing Center of Excellence - Keytorc Approach
Testing Center of Excellence -  Keytorc ApproachTesting Center of Excellence -  Keytorc Approach
Testing Center of Excellence - Keytorc Approach
 
Test Automation - Keytorc Approach
Test Automation - Keytorc Approach Test Automation - Keytorc Approach
Test Automation - Keytorc Approach
 
Performance Testing - Keytorc Approach
Performance Testing - Keytorc ApproachPerformance Testing - Keytorc Approach
Performance Testing - Keytorc Approach
 

Selenium 2- Keytorc Test Automation Cheatsheet

  • 2. Selenium 2 Cheat Sheet Navigation u iki metot aynı görevi yerine getirir, Her ikisi de belli bir url’yi açar: • <WebDriver>.get(<Url>) • <WebDriver>.navigate.to(<Url>) Bulunulan sayfayı yenilemek için u metot kullanılabilir: • <WebDriver>.navigate.refresh() <WebDriver> ile kastedilen, private WebDriver driver = new FirefoxDriver(); örne indeki “driver” nesnesidir, yani bu örnek için: • driver.get(“www.google.com.tr”); olacaktır, ya da • driver.navigate.to(“www.google.com.tr”); • driver.navigate.refresh(); XPath & CSSSelector: “div.foo” tag adı div olan ve “class” attribute’ünde “foo” geçen, sayfadaki bütün web elemanlarını bulur, xpath ile: “//div[@class=’foo’]” “div.foo.bar[title^="Help"]” tag adı div olan ve “class” attribute’ünde “foo” ve “bar”geçen ve title’ı “Help” ile ba layanları bulur. “div.foo.bar[title$="Help"]” tag adı div olan ve “class” attribute’ünde “foo” ve “bar”geçen ve title’ı “Help” ile bitenleri bulur. “div.foo.bar[title*="Help"]” tag adı div olan ve “class” attribute’ünde “foo” ve “bar”geçen ve title’ı “Help” içerenleri bulur (title’ın içinde herhangi bir yerde “Help” kelimesi geçiyorsa), xpath ile: “//div[@class=’foo bar’][contains(@title,'Help')]” “ul#navigation” id’si “navigation” olan, sayfadaki bütün “ul” web elemanlarını bulur, xpath ile: “//ul[@id=’navigation’]” “a[href^=”http://”]” href’i “http://” ile ba layan, sayfadaki bütün “a” web elemanlarını bulur. “input[type="submit"]” type’ı “submit” olan, sayfadaki bütün “input” web elemanlarını bulur, xpath ile: “//input[@type=’submit’]” u web elemanını içerdi i metne göre bulmak istersek: <a href="url/New-Doc" target="_top" fahidden="false" faswid="e-switcher-mail" faprop="p-e-switcher-function- id">Mail</a> <WebDriver>.findElement(By.cssSelector("a:contains('M ail')”)); diyebiliriz, xpath ile ise öyle bulunur: < W e b D r i v e r > . f i n d E l e m e n t ( B y. x P a t h ( " / / a[text()='Mail']")); Interrogation (Inspection) Mozilla Firefox browser’ı için “Firebug” addon’unun eklenmesi gerekmekte, “Firebug” kullanılması web elemanlarının belirlenmesini kolayla tırır. Ayrıca “Firepath” tabına xpath ya da cssSelector yazıldı ında ilgili elemanı gösterir. Bulunulan sayfanın ba lı ını (title) döndürür: )(eltiTteg.>revirDbeW< driver.getTitle() Bulunulan sayfanın url’sini döndürür: )(lrUtnerruCteg.>revirDbeW< diver.getCurrentUrl() Bulunulan sayfanın sayfa kayna ını döndürür: )(ecruoSegaPteg.>revirDbeW< driver.getPageSource() <WebElement> ile kastedilen sayfadaki <div>, <input>, <label>, <select>, <table>, <tbody>, <tr>, <td>, <ul>, <li> gibi elemanlardan herhangi biridir, örne in: WebElement table = <WebDriver>.findElement(By.id(“containerTable”)); le bir tabloyu alabiliriz, bu tablodaki bütün satırları(tr) almak için: List<WebElement> allRows = table.findElements(By.tagName(“tr”)); le tablodaki bütün satırlar “allRows” Listine kopyalanır, “List<WebElement>” ile List içindeki bütün ö elerin tipinin “WebElement” oldu unu belirtiyoruz, farklı tipte bir ö e bu List’e kopyalanamaz. Bir sayfa elemanını bulmak için id, xpath, cssSelector, className veya tagName kullanılabilir: • <WebElement>.findElement(By.id(“”)) • <WebElement>.findElement(By.xpath(“”)) • <WebElement>.findElement(By.cssSelector(“”)) • <WebElement>.findElement(By.className(“”)) • <WebElement>.findElement(By.tagName(“”)) Bir web elemanının içerdi i metni almak için: <WebElement>.getText() Bir web elemanının belli bir attribute de erini almak için: • <WebElement>.getAttribute() • <WebElement>.getAttribute(“class”) • <WebElement>.getAttribute(“value”) Bir web elemanına ait tag adını almak için: <WebElement>.getTagName() Web elemanının durumunu control etmek için: • <WebElement>.isDisplayed() • <WebElement>.isEnabled() • <WebElement>.isSelected() “findElement” ile aradı ını bulamazsa, önce timeout süresi kadar bekler, sonra exception fırlatır (Unable to locate element), bunun yerine “findElements(By.... ()).size()” kullanılabilir, e er size()==0 ise, bu aranan elemanın bulunamadı ı anlamına gelir, böylece timeout süresi kadar beklemeye gerek kalmaz. Manipulation (Interaction) <WebElement>.click() <WebElement>.clear() Bazı durumlarda seçim yapma i lemini tamamlamak için sendKeys’ten sonra “sendKeys(Keys.ENTER)”, göndermek gerekebilir. <WebElement>.sendKeys() <WebElement>.sendKeys(Keys.ENTER) E er bir combobox’tan seçim yapmakta zorlanılıyor ise “sendKeys(Keys.ARROWDOWN)” metodu ile bir sonraki seçene e ula ılabilir. <WebElement>.sendKeys(Keys.ARROWDOWN) Alternatif bir yöntem olarak combobox’a, istenilen s e ç e n e ,rilibelirednögifrahklini <WebElement>.sendKeys(“A”) gibi, bu durumda comboboxtan “A” ile ba layan ilk seçenek seçilecektir. Kodun hem Mac’te hem de Windows’ta çalı ması isteniyorsa < S e l e c t > . s e l e c t B y V i s i b l e T e x t ( ) v e <Select>.selectByIndex() yerine <Select>.getOptions().get(index) kullanılmalı. Alternatif bir tıklama yöntemi olarak u kullanılabilir: wen Actions(<WebDriver>).moveToElement( <WebElement> ) .click().build().perform() Checkbox’lar tıklanırken Windows’ta çalı an kod Mac’te çalı mayabilir, buna dikkat etmek gerek, yazılan kodun, checkbox’ın tam olarak içini aldı ına dikkat etmek gerekli (Mac için). Synchronization Senkronizasyon açısından her click(), sendKeys() veya select i leminden hemen sonra bekletme yapan kod eklenmelidir, bu bir WebDriverWait() nesnesi de olabilir veya AJAX’ın tamamlanmasını bekleyen bir kod da olabilir. • Explicit Wait örne i: WebDriverWait wait= new WebDriverWait(driver,20 ); wait.until( ExpectedConditions.visibilityOfElementLocat ed (By.xpath("//*[@id='someId']"))); • Implicit Wait örne i: driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); Domain • Cookies <WebDriver>.manage().deleteAllCookies(); sadece bulundu unuz domaindeki cookie’leri siler. <WebDriver> ile kastedilen, private WebDriver driver = new FirefoxDriver(); örne indeki “driver” nesnesidir, yani bu örnek için: driver.manage().deleteAllCookies(); olacaktır. • Windows Bulunulan pencerenin String tipinde handle’ını almak için: <WebDriver>.getWindowHandle() <WebDriver>.getWindowHandles() , açık olan bütün pencerelerin String tipinde handle’larını içeren bir Set döndürür. <WebDriver>.switchTo().window(<WindowHandle>); Bütün window-handle’lar alınıp bir döngü içinde birer birer sırayla hepsine focuslanırsa(switchTo), en son açılan pencere focuslanılmı (switchTo) olur. //Store the current window handle String windowHandleBefore = driver.getWindowHandle(); //Switch to new window opened Set<string> windowHandles = driver.getWindowHandles(); for(String windowHandle : windowHandles){ driver.switchTo().window(windowHandle);} <WebDriver>.manage().window().maximize(); bazı testcase’ler ko ulurken e er pencere tam boyutlu de ilse fail olabiliyor , bu nedenle testin ba ında pencerenin tam boyutlu hale getirilmesinde fayda var. • Frames E er yeni bir frame açıldıysa bu frame’e focuslanmak için unlar kullanılabilir: <WebDriver>.switchTo().frame(<name_or_id>) <WebDriver>.switchTo().frame(<index>) <WebDriver>.switchTo().frame(<WebElement>) Yeni açılan frame’den önceki sayfaya dönmek için de u kullanılabilir: <WebDriver>.switchTo().defaultContent() , e er bu çalı mazsa, driver.switchTo().window(<WindowName>) kullanılabilir. • JavascriptExecutor Java kodu içinde Javascript çalı tırmak mümkün, bunun için u kullanılabilir: ((JavascriptExecutor)<WebDriver>).executeScript(“alert ('hello world');”) Bu örnekte, “hello world” yazısı içeren bir alert görüntülenir. Örne in, öyle bir sayfa elemanını görünür yapmak için, <select id="periodId" name="period" style="display: none;"> öyle bir kod kullanılabilir: JavascriptExecutor executor = (JavascriptExecutor)<WebDriver>; executor.executeScript("document.getElementById('peri odId').style.display='block';"); • Alerts Açılan Alert penceresine focuslanmak için u kullanılabilir: <WebDriver>.switchTo().alert(); <Alert> için kullanılabilecek bazı metotlar unlar: <Alert>. accept() <Alert>. dismiss() <Alert>. getText()
  • 3. www.keytorc.com blogs.keytorc.com Telefon : +90 212 290 76 60 E-posta : info@keytorc.com Se