Bir uygulamayı test etmek için, üzerinde bir dizi kullanıcı eylemi gerçekleştirmeniz gerekir. Web uygulamasında çift tıklama, açılır kutuları seçme gibi herhangi bir işlemi gerçekleştirmek için actions sınıfı gereklidir. Bu makalede, Selenium’da actions sınıfının nasıl ele alınacağı anlatılmaktadır.
Actions sınıfı, Selenium tarafından klavye ve fare olaylarını işlemek için sağlanan bir yetenektir. Selenium WebDriver’da bu olayların işlenmesi, diğerlerinin yanı sıra sürükle ve bırak, kontrol tuşuyla birden çok öğeye tıklama gibi işlemleri içerir. Bu işlemler, gelişmiş kullanıcı etkileşimleri API’si kullanılarak gerçekleştirilir. Esas olarak bu işlemleri gerçekleştirirken ihtiyaç duyulan Eylemlerden oluşur.
Actions sınıfı, aşağıdaki sözdizimi kullanılarak tanımlanır ve çağrılır:
import org.openqa.selenium.interactions.Actions;
Actions actions = new Actions(WebDriver nesnesi);
WebElement webElement = driver.findElement(…);
Actions Sınıfı Metotları
Actions sınıfı, temel olarak fare ve klavye eylemleri için kullanışlıdır. Bu tür eylemleri gerçekleştirmek için Selenium çeşitli yöntemler sunar.
Selenium’da Mouse Eylemleri:
- click(): Geçerli fare konumunda tıklamalar.
- doubleClick(): Öğeye çift tıklama gerçekleştirir
- clickAndHold(): Fareyi bırakmadan uzun süre tıklama yapar
- dragAndDrop(): Öğeyi bir noktadan sürükleyip diğerine bırakır
- dragAndDropBy(source, xOffset, yOffset): Kaynak elemanın konumunda tıklayın ve basılı tutun, belirli bir ofset ile hareket eder
- moveToElement(): Fare işaretçisini öğenin merkezine kaydırır
- moveByOffset(x-offset, y-offset):Fareyi geçerli konumundan (0,0) verilen ofset kadar hareket ettirir
- contextClick(): Fare üzerinde sağ tıklama gerçekleştirir
- release(): Geçerli fare konumunda basılı sol fare düğmesini serbest bırakır
Selenium’da Klavye Eylemleri:
- sendKeys(): Öğeye bir dizi anahtar gönderir
- keyUp(): Anahtar bırakma gerçekleştirir
- keyDown(): Serbest bırakmadan tuşa basar
Örnek kodlar:
Actions action = new Actions(driver);
action.sendKeys(element, “iphone”).build().perform();
action.click(element).build().perform();
action.contextClick().build().perform();
action.doubleClick(element).build().perform();
action.moveToElement(element).build().perform();
action.clickAndHold(element1).moveToElement(element2).release().build().perform();
action.sendKeys(Keys.ENTER).build().perform();
action.keyDown(element,Keys.SHIFT).sendKeys(“testinium”).build().perform()
action.keyDown(Keys.CONTROL).sendKeys(Keys.HOME).perform();
action.keyDown(Keys.CONTROL).sendKeys(Keys.END).perform();
action.keyDown( Keys.CONTROL ).sendKeys( “a” ).keyUp( Keys.CONTROL ).build().perform();
action.keyDown( Keys.CONTROL ).sendKeys( “c” ).keyUp( Keys.CONTROL ).build().perform();
action.keyDown( Keys.CONTROL ).sendKeys( “v” ).keyUp( Keys.CONTROL ).build().perform();
action.keyDown(Keys.CONTROL).sendKeys(Keys.F5).build().perform();