WatiN aslında web projelerinizi test kütüphanelerinizde kolayca test işlemlerini gerçekleştirebilmek için tasarlanmış bir kütüphanedir fakat bu kütüphane yardımıyla bir sitedeki verileri parse edip kolayca işleyebilirsiniz makale devamında bol örnek ile tam olarak neyden bahsedildiğini çok daha iyi anlamış olacaksınız.
WatiN ile site üzerindeki işlemleri kod ile yapma
Nuget paket yöneticinden WatiN diye arama yapıp projenize kütüphaneyi dahil edebilirsiniz. Yada Package Console’dan Install-Package WatiN komutunu çalıştırarak projeye kütüphaneyi dahil edebilirsiniz.
Yükleme
Bazı Özellikler
- Test işlemlerinizi Firefox 2, 3 ve Internet Explorer 6, 7, 8, 9 tarayıcıları ile gerçekleştirebilirsiniz.
- Test araçları ile kolay ve hızlıca entegrasyonu sağlayabilirsiniz
- Elementleri ararken birden fazla öznitelik kullanabilirsiniz.
- Open source bir projedir.
- alert, confirm, login v.b popup uyarılarını yakalayabiliyor.
- HTML diyaloglarını desteklemktedir.
- AJAX websitesi testlerini desteklemektedir.
- Sitenin tam ekran görüntüsünü alabilirsiniz.
Hangi tarayıcıyı kullanacağımızı new Firefox(url)
veya new IE(url)
sözdizimi ile belirleyebilirsiniz. Bu sözdizimlerini nerede kullanacağımızı örnek kodlarımızda görebilirsiniz.
Internet Explorer kullandığınızda eğer aşağıdaki gibi bir hata ile karşılaşır iseniz o çözüm kısmındaki yöntemi uygulayınız.
IE’de Çıkabilecek Hata:
1 | System.IO.FileNotFoundException : Could not load file or assembly 'Interop.SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyToken=db7cfd3acb5ad44e' or one of its dependencies. The system cannot find the file specified. |
Çözüm
Interop.SHDocVw dll’i nuget paket yöneticisinden kütüphaneyi eklediğimiz için gözüküyor eğer kütüphaneyi projeye dahil etmediyseniz gözükmeyecektir öncelikle kütüphaneyi projenize eklemelisiniz.
Kullanımı
Konsol ve Windows Form uygulamasında bu kütüphaneyi kullanabilmek içi STAThread adlı attribute’ü Main metodu üstüne eklemelisiniz. Örnek kullanım için alttaki koda gözatabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | using System; using WatiN.Core; namespace WatiNGettingStarted { class WatiNConsoleExample { [STAThread] static void Main(string[] args) { // Your test code; } } } |
Örnek Test Metodu
Şimdi C#’da örnek bir test yazalım tarayıcı için Internet Explorer kullanacağız. Örneğimizde youtube video paylaşım sitesini kullanacağız. Yapacağımız işlem youtube’da bir arama gerçekleştirip çıkan sonucu konsol ekranına bastıracağız böylelikle hem kod ile tetikleme işlemlerinin nasıl yapıldığı hemde sayfadaki kodları nasıl kolayca parse edip kullanabildiğimizi göreceğiz.
Console(Program.cs)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | using System; using WatiN.Core; namespace ConsoleApplication1 { class Program { [STAThread] static void Main(string[] args) { var browser = new IE("https://www.youtube.com/"); var searchText = browser.TextField(Find.ById("masthead-search-term")); var searchButton = browser.Button(Find.ById("search-btn")); searchText.TypeText("Murat ÖNER"); searchButton.Click(); Console.ReadLine(); } } } |
Sitenin Ekran Görüntüsünü Alma
Bu örneğimizde kütüphanenin bir diğer özelliği olan ekran görüntüsü alma özelliğini kullanarak muratoner.net sitesinin ekran görüntüsünü nasıl alacağımızı göreceğiz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using System; using WatiN.Core; namespace ConsoleApplication1 { class Program { [STAThread] static void Main(string[] args) { var browser = new IE("http://www.muratoner.net"); browser.CaptureWebPageToFile("1.jpg"); Console.ReadLine(); } } } |
Görüldüğü üzere ekran görüntüsünü almak oldukça basit yapmanız gereken hangi tarayıcı ile çalışacaksanız ilgili sınıfından türetip ardından CaptureWebPageToFile
adlı metodu çalıştırmalısınız dosya uzantısını kaydederken jpg, gif, png
formatlarını kullanabilirsiniz.
Daha detaylı bilgi almak isterseniz http://watin.org/ adresini ziyaret edebilirsiniz.