2013-04-29 22 views
5

Uygulamamı kontrol etmek için Selenium testi yazarken sorun yaşıyorum. Test etmek istediğim kullanıcı doğru oturum açma/şifre yazarken, sayfa doğru gösterildiğinde ve kullanıcı giriş yaptığında.Selenium, AngularJS sayfa öğelerini göremiyor

Ana sorun, giriş formumun bir AngularJS yönergesi olarak oluşturulmuş olmasıdır (İki farklı giriş sayfam var ve bu yönerge her iki yerde de yeniden kullanılır) ve Selenium bu direktifin oluşturduğu işaretlemeden öğeleri göremiyor gibi görünüyor. En önemli olan, yönerge tarafından oluşturulan normal işaretlemenin yerini almadan önce bu sayfada testler geçiyordu.

Selenium, yönerge tarafından oluşturulan html öğelerini göremiyor gibi görünüyor.

Bu sorunun nasıl üstesinden gelebileceğime dair herhangi bir öneriniz var mı? Elbette bu değişikliği geri döndürme yönergesi getiriliyor :)

+0

Ben aynı sorunu yaşıyorum. Test etmeye çalıştığım açısal bir web sitem var ama cunta testlerini çalıştırdığımda eleman bulunamadı. Çeşitli eleman konumlandırıcılarını denedim. Hiçbiri işe yaramadı. – Automationtested

cevap

1

Tamam kullanılarak bulunabilir beni Selenyum ile Geb kötüye oldu gibi görünüyor olmalı. Ben varsayılan sürücü belirtmemiştim ve Geb AngularJS ile çalışmayan birini aldı. Sürücüyü Chrome'a ​​el ile değiştirdikten sonra, her şey çalışmaya başladı.

1

Sayfa kaynağı, Şablonu Angular tarafından derlenmeden önce gösterecektir. Chrome'un geliştirici konsolunu kullanarak derlenmiş şablonu görebilmeniz gerekir: Bir öğeye sağ tıklayıp açmak için 'incelemek öğesi'ni seçmeyi deneyin.

driver.getPageSource() aynı nedenden dolayı başarısız olur (derlenmemiş şablonu alır), ancak driver.findElement() düzgün çalışmalıdır.

<input id="username" type="text" ng-model="foo"/> 

,

driver.findElement(By.id("username")); 
+0

Maalesef durum böyle değil. Daha net olmak için soru düzenledim. Sorun şu ki direktifim tarafından oluşturulan bu işaretlemeyi eklemeden önce testlerim bu sayfada geçiyordu. –