23 Eylül 2019

Java Selenium Link Text Kullanımı ve Locator Varyasyonları

Java Selenium Link Text Kullanımı ve Locator Varyasyonları

Web UI test otomasyonu yazarken link olarak verilen nesne veya butonlara Click-Tıklama işlemini ve o nesnenin benzer Locator varyasyonlarını nasıl elde edeceğinizi anlatacağım.

Bir nesnenin detaylı Attribute değerlerine bakmanız için Locator Spy veya Google Web Plugin olan Katalon Recorder gibi araçlar kullanabilirsiniz. Ya da Browser'da ilgili nesneyi Inspect yaparak da HTML koduna bakabilirsiniz. Örneğin ilk görseldeki gibi bir Link Text nesnesi olsun ve Inspect yaptığımızda HTML kodu aşağıdaki gibi olsun.

<a href="http://url-address" title="Application Ver.1.2">Application (Ver.1.2)</a>

Yukarıdaki nesnenin HTML koduna baktığımızda aşağıda türettiğim gibi full xpath, title xpath ve link text bilgileri ile birden fazla locator üretebilir ve Click işlemi yaptırabilirsiniz. Eğer verdiğim örnek nesnede ki Attribute bilgileri daha fazla olsaydı örneğin: id, for, automationId gibi bunlar içinde Locator varyasyonları oluşturabilirdik.

Target (Link Text Locator Versiyonu): link=Application (Ver.1.2)

Target (Full XPath Versiyonu 1): //*[@id="name2"]/a[2]

Target (XPath Versiyonu 2): //*[@id="name2"]

Target (Title XPath Versiyonu 3): //*[@title="Application Ver.1.2"]

Java Selenium Link Text Kullanımı ve Locator Varyasyonları

Java'da Test Case'de Kullanımı ve Click İşlemi;

driver.findElement(By.linkText("Application (Ver.1.2)")).click();

driver.findElement(By.xpath("//*[@id="name2"]/a[2]").click();

driver.findElement(By.xpath("//*[@id="name2"]").click();

driver.findElement(By.xpath("//*[@title="Application Ver.1.2"]").click();

Yukarıdaki click kodları aynı nesneyi tıklamaya yarayan dört farklı seçenektir. Siz Test Case'de Xpath ile değilde Link Text kısmını kullanıp orayı kullanıcıdan String olarak girmesini beklerseniz, değişkenin dinamik olmasını isterseniz ilk yazım biçimi sizin daha çok işinize yarayacaktır.

Java Selenium Link Text Kullanımı ve Locator Varyasyonları

XPath ve Contains Locator Varyasyonu

XPath kullanımında contains örneği vererek Locator varyasyonunu biraz daha ileri boyuta götürelim. Örneğin title kısmındaki Application Ver.1.2 değerindeki versiyon numarası sabit değilde her zaman değişen bir value olsun.

Sizin her test case çalıştırdığınızda bu bilgiyi güncel tutmanız çok zor. Fakat değişmeyen bir bilgi varsa o da Application yani uygulamanın kendi adı. Biz sadece bu value alarak custom bir XPath oluşturabiliriz. Bu sayede test case'imizi hep güncellemek zorunda kalmayız. Aşağıda örnek custom locator ve java kodunu paylaştım.

Target (XPath Contains Versiyon): "//a[contains(@title, 'Application')]"

JAVA: driver.findElement(By.xpath("//a[contains(@title, 'Application')]")).click();

Bu işlemler Test otomasyoncular için basit bir bilgi gibi gözüksede başlangıç seviyesindeki arkadaşlara yararlı olacaktır. Bu sayede bir nesnenin içindeki Attribute bilgileri ile birden fazla Locator varyasyonu üreterek yazdığınız Test Case için hangisi uygunsa onu kullanmak işlerinizi kolaylaştıracaktır.

Burak AVCI

Hiç yorum yok:

Yorum Gönder