Chrome'da, watir-webdriver kullanarak, bir çocuk tarayıcı penceresi açan bir düğmeyi tıklıyorum.Kendiliğinden kapanan bir çocuk tarayıcı penceresi, Watir-webdriver'ın bağlantısını ana pencereye ayırır mı?
yapmam:
@browser.window(title: 'Child').use
başarıyla o çocuk penceresindeki çeşitli öğelerle etkileşim.
Çok geçmeden, bu pencerede, sitenin ilk bakışta pencerenin açılmasının "noktası" olduğunu düşündüğü bir eylem var. örn., bu eylem gerçekleştirildiğinde, alt pencere kendini kapatır.
@browser.window(title: 'Parent').use # => results in
# Selenium::WebDriver::Error::NoSuchWindowError: emptyScript execution failed;
# The window could not be found
Ben bu bir Selenyum/Watir-webdriver hata olduğunu düşünüyoruz nedeni aşağıdaki çünkü: Ben ancak, ana penceresini kullanarak geri dönmek için watir-webdriver anlatınca
, bir hata alıyorum Kod Çalışması:
@browser.window(title: 'Child').use
# ... Now I do various things in the child window that do NOT
# ... cause it to close itself. They all work as expected.
# ...
puts @browser.window(title: 'Parent').present? #=>true
@browser.window(title: 'Child').close
puts @browser.window(title: 'Parent').present? #=>true
@browser.window(title: 'Parent').use # => No error thrown
Tek fark, alt pencerenin kendisini kapatmasına neden olan eylemdir.
Watirspec kodunun kendiliğinden kapanabilen bir pencere için bir test durumu olmadığını fark ettim, bu yüzden belki de watir-webdriver'daki Windows kodunun gözden kaçmış bir yönü.
Tamam, şimdi de sen çalıştırabilirsiniz kod, bu sorunu kendiniz görmektir:
require 'watir-webdriver'
@b = Watir::Browser.new :chrome
@b.goto 'ckeditor.com/demo#full'
@b.div(id: 'cke_editor1').link(title: 'Link').click
@b.link(title: 'Browse Server').wait_until_present
@b.link(title: 'Browse Server').click
@b.window(title: 'CKFinder').use {
@b.frame(title: 'CKFinder').link(id: 'r0').right_click
@b.frame(title: 'CKFinder').frame(id: 'cke_22_frame').wait_until_present
@b.frame(title: 'CKFinder').frame(id: 'cke_22_frame').link(id: 'cke_200').click
}
bu hata ile sonuçlanır:
Selenium::WebDriver::Error::NoSuchWindowError: emptyScript execution failed;
The window could not be found
I deme Senin için asla nuthin 'yapmadım! :-)
Şimdi gitmeden önce "Neden 3. Parti düzenleme aracını test ediyorsun, çılgın adam?" Bunu sizin için cevaplayacağım: Ben değilim.
Test ettiğim şey, CKEditor aracı tarafından üretilen kaynak kodun belirli bir durumda düzgün bir şekilde güncellenmesidir (ki buradaki sorunun kapsamı çok daha fazladır). Bunu ayarlamak için, ilk olarak kaynak kodunun olduğunu bilmem gerekir, böylece daha sonra farklı bir işlem tarafından düzgün şekilde güncellendiğini doğrulayabilirim. Ve bunu yapmak için, öncelikle CKEditor’ın bağlantı aracını kullanarak doğru şekilde ayarlamalıyım. Capiche?
Ayrıca böyle bir şey (test) yapmak mümkün olabilir veya "watir" webdriver? –
Watir-webdriver - ilk cümlede yazdığı gibi. :-) –
Ben watirspec baktım ve abe bu konuda haklı. Çocuk penceresini görebildiğimizi görmek için bir testimiz var, ama bu o. Örnek olarak rdoc'daki örnek kod gösterimi için bir test kullanmayız. –