Watir

2011-03-18 17 views
7

'da bir öğenin var olup olmadığını saptamak Watir'e nispeten yeniyim, ancak bir öğenin var olup olmadığını nasıl kontrol edeceğiniz konusunda iyi bir belge (örnekler) bulamıyorum. Tabii ki API özellikleri var, ancak bunlar bir örnek bulamazsam bana çok az değer verir.Watir

Ben kombinasyonları başka bir şey hem denedim ... iş gibi görünüyor eğer browser.image (: src "/media/images/icons/reviewertools/editreview.jpg").exists sonra ... eğer browser.image (: src "/media/images/icons/reviewertools/editreview.jpg").exists? sonra ...

Bunu nasıl uygulayacağınıza dair somut bir öneri varsa, lütfen yardım edin! Teşekkürler!

+0

tüm bu şeyin bir ama belki bir

+0

yanlış yaptıklarını sadece tahmin edebilirsiniz onsuz HTML veriniz görüntünün HTML veriniz –

+0

Http://stackoverflow.com/questions/5359556/unable-to-find-method-for-detecting-if-element-exists-on-a-page/5396645#5396645 –

cevap

2

Doğru şekilde kullandığınız gibi görünüyor. İşte eski bir RDoc of Watir.

Çalışmıyor mu, çünkü Watir bulamıyor mu? Söylenmesi zor, çünkü sınanmakta olan sayfaya kaynak veya bağlantı yok. Ben sadece image.exists kullanıyorum?. Genel olarak, görüntü var ancak bulunamadı zaman gelen hatalar şunlardır:

  1. nasıl eleman türü ile uyumlu değildir. Farklı özelliklerde here ile hangi nesne türlerinin bulunabileceğini görmenize yardımcı olacak bir hile sayfası vardır.
  2. Doğru olmayan. Bununla biraz oynamak zorunda kalabilirsiniz. Bir regex dizesini browser.image (: src, /editreview.jpg/) gibi eşleştirmek için denemeyi düşünün. Son çare olarak, element_by_xpath'i kullanabilir, ancak bununla birlikte bakım maliyetleri vardır.
  3. Bu konum doğru değil. Belki de eleman bir çerçevede ya da böyle bir şeyde. browser.frame ("detail") görüntü (: src, /editreview.jpg/).

Bunları deneyin, ancak lütfen neyin işe yaradığını bana bildirin. Bir şey daha, neyi kontrol ediyorsun? Test kriterlerinin bir parçasıysa, bu şekilde halledebilirsiniz. Eğer üzerine tıklamanız gerekiyorsa, .existleri unutun mu? ve sadece üzerine tıklayın. Ruby, yok mu size söyler. Eğer lütuf olmak için ihtiyacınız varsa, begin/rescue hakkında bilgi edinin.

İyi şanslar,

Dave

+0

Mümkün yinelenen cevaplarınız için teşekkürler. Dave, image.exists'i nasıl kullanacağımın bir örneğini belirtir misiniz? Kullandığım kod: browser.image (: src "/media/images/icons/reviewertools/editreview.jpg"): .exists? Çalışmıyor ve iade edilmiyor: Adm in_Panel2.rb: 45: sözdizimi hatası, beklenmedik ')', kEND bekliyor ... reviewertools/editreview.jpg ") var mı? ^ Admin_Panel2.rb: 48: sözdizimi hatası, beklenmedik kELSE, kend Admin_Panel2.rb bekliyor: 212: sözdizimi hatası, beklenmedik kend, $ bekliyor Üzgünüz sona ama belirli bir örnek olmadan kayboldum. Teşekkürler. – Rijksband

+0

@rijksband Bir sözdizimi hatası, ruby ​​yorumlayıcısının kodu ayrıştırmakta sorun yaşadığı anlamına gelir. Eksik/ek parantez veya virgül veya başka birçok neden anlamına gelebilir. Bu durumda, büyük olasılıkla kaybolan virgül: src ve görüntü yolu. Daha güçlü bir editör kullanmayı düşünebilirsiniz, çünkü bunların çoğu yazılan yanılgıya işaret edecektir. – juan2raid

2

Yayınladığınız kod sadece iyi çalışması gerekir. Düzenleme: Hata, yanlış. Katmoon'un işaret ettiği gibi, kayıp bir virgül var. Eğer yakalanmak olabilir

browser.image(:src "/media/images/icons/reviewertools/editreview.jpg").exists? 

Bir problem belirttiğiniz tarayıcı değişken aslında var olmayan bir unsur olup olmadığını olduğunu.

örn.

b = Watir::IE.start(ipAddress) 
b.frame(:name, "doesntExist).image(:src "/media/images/icons/reviewertools/editreview.jpg").exists? 

Yukarıdaki kod bir Watir :: UnknownFrameException atar. Önce çerçevenin var olduğunu doğrulayarak veya bir başlangıç ​​/ kurtarma bloğundaki kodu çevreleyerek bunu aşabilirsiniz.

+0

Bu, bir şeyin gerçekten bir görüntü olduğunu farz ediyor. Ya bir düğme ya da bir linkse? HTML sağlamadan sadece tahminler yapabiliriz. –

15

Parametreler arasında bir virgül eksik gibi görünüyor.

if browser.image(:src, "/media/images/icons/reviewertools/editreview.jpg").exists? 

Ayrıca özellikleri desteklenir bilmek gelecekte yararlı this page bulabilirsiniz olmalı.

İlgili konular