7 Kasım 2016 Pazartesi

PYTHON İLE WEB TESTLERİ

PYTHON SELENIUM

Son zamanlarda Web Testleri ile bayağı bir haşır neşir oldum fakat daha çok java üzerindendi.Bu yüzden bu yazıda Python üzerinden Web Testlerine bir başlangıç yapacağız.

Öncelikle python için birkaç paket indirmemiz gerekiyor.
  • Terminale veya komut istemine "pip install selenium" yazarak selenium'u kolayca yükleyebilirsiniz(tabi eğer pip yüklü ise).
  • Eğer tarayıcınız Chrome ise buu adrese girerek sisteminiz için uygun olan versiyonu yükleyebilirsiniz:"http://chromedriver.storage.googleapis.com/index.html?path=2.24/"
  • Eğer Firefox kullanıyorsanız bir şey yapmanıza gerek yok.

Şimdi python ile örnek bir kod yazmaya başlayabiliriz.

Her yeni kodda olduğu gibi öncelikle bunları yazalım:

#/usr/bin/python
#-*- encoding:utf-8 -*-

Sonrasında selenium modülümüzü import edeceğiz:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

Şimdiyse sonrasında girerken ihtiyacımız olan bilgileri elde etmek için kullanıcıya mail adresi, şifresini soracağız ve driver'ımızı belirleyeceğiz:

mail=raw_input("Mail Adresi:")
passwd=raw_input("Şifre:")
driver=webdriver.Chrome()

Bunu yaptığımızda Chrome'dan yeni bir pencere açılacaktır,bunun ardından sayfanın gitmesini istediğimiz url'yi yazacağız:

driver.get('https://gmail.com')

Bunu yaptığınızda pencerede gmail giriş sayfası gözükecek.
Şimdiyse kodumuz ile gmail sayfasına girişi otomatik hale getireceğiz.
Bunu yapmamız için etkileşime geçeceğimiz elementlerin bilgilerini almalıyız.

Chrome'da Geliştirici Araçları(Developer Tools) adında bir seçenek olacak.Bu seçeneğe
tıkladığımızda ise bu pencere karşımıza çıkacaktır:

Şimdi akış açısından ilk yapmamız gereken adrese gitmek ve mail kısmına mailimizi yazmaktır.Bunun için "Enter your email" yazan kısmın id'sini öğrenmeliyiz.
Bu işareti seçtikten sonra kutucuğun üstüne tıklıyoruz ve Geliştirici Araçları bize bu elementin id'sinin konumunu veriyor.

Geliştirici araçları bize bunları gösterdikten sonra bunun id yazan kısmı ile ilgileneceğiz.Id'si "Email" olarak belirlenmiş.Şimdi bunu koda geçirebiliriz.Bu kısma "send_keys()" ile mail bilgisini yazacağız.

driver.find_element(By.ID,value="Email").send_keys(mail)

Sonrasında aynı şeyi saydadaki "Next" butonu için de yapıyoruz.
Buradan da butonun id'sinin "next" olduğunu öğrendik."click()" ile de butona tıklamış olduk.
driver.find_element(By.ID,value="next").click()


Şimdiyse sayfa bizden şifremizi isteyecek.
Mail adresimizi gönderdiğimiz şekilde bunu da gönderiyoruz.
driver.find_element(By.ID,value="Passwd").send_keys(passwd,Keys.RETURN)

Bu sefer giriş butonunu arayıp bulmak yerine programın şifreyi yazdıktan sonra ENTER tuşuna basmasını sağlayabiliriz.Bunun için gönderilen şifrenin yanında bir de klavyeden 'RETURN' tuşunu gönderiyoruz.Bu klavye tuşları sistemden sisteme değişiklik gösterebiliyor.Eğer yukarıdaki kod çalışmazsa Keys.ENTER 'ı da deneyebilirsiniz.

Son olarak bu kodu da gönderdiğimizde gmail hesabımız açılmış olacak.Şimdi bütün kodu kaydedip programı otomatik olarak çalıştıralım.

Element Türleri

Sayfadaki elementleri bulurken farklı yöntemler kullanmamız gerekebilir.
    driver.find_element_by_class_name("")
    driver.find_element_by_css_selector("")
    driver.find_element(By.ID,value="")
    driver.find_element_by_id("")
    driver.find_element_by_xpath("")
    driver.find_element_by_name("")
    driver.find_element_by_tag_name("")
    driver.find_element_by_link_text("")

Selenium ile ilgili daha fazla bilgi için bu adresi ziyaret edebilirsiniz:
http://selenium-python.readthedocs.io/

Hangisini kullanacağımıza da Geliştirici Araçlarından bakıp karar veriyoruz.
Böylelikle Python ile otomasyon testlerine başlangıç yapmış olduk.
Başka bir yazıda görüşmek dileğiyle...