2009-12-12 29 views
5

kullanırken DOM işlemini doğrulama Uygulamamı test etmek için Selenium kullanıyorum. İyi bir test, her DOM manipulasyonundan sonra DOM'yi doğrulayacağım olurdu. Bunu yapmanın iyi bir yolu var mı?Selenium

Apaçık yolu vardır:

  • kullanımı bazı yerleşik Selenyum fonksiyonu. Biri var mı
  • Manifülasyondan sonra DOM'ın HTML'sini alın ve yerel bir doğrulayıcı kullanın. Ancak, mevcut DOM için HTML'yi Selenyum'dan nasıl alacağımı göremiyorum.
  • Javascript'i bir şekilde, test ederken veya Selenyum aracılığıyla bir JS dosyası ekleyerek geçirebilirim. Ama bundan nasıl emin olacağımı bilmiyorum. Düşünceler?

cevap

4

Selenium'u kullanarak bunu yapmak için yerleşik bir işlem yoktur. Ancak WebDriver üzerine inşa edilen bir Açık Kaynak projesi var, WebDriver düzeni test etmenize izin veren Selenium 2 oluyor.

Proje, http://code.google.com/p/fighting-layout-bugs/ numaralı telefondan ve ilk olarak Zürih'te GTAC 2009'da gösterildi. Kod, DOM'ın geçerliliğini kontrol etmek için W3C ve jQuery'yi kullanır. Konuşmanın videosuna ve orada bulunan kodlara bakın.

DÜZENLEME:

sayesinde aynı cephede durulması been code.google.com/p/w3c-markup-validation-filter/

+0

Bu son derece güzel görünümlü bir proje, ancak düzen testi, HTML'yi geçerlilik testi için oldukça farklı. – sampablokuper

+0

çerçeve çalışması w3c validayonunu yapar. ExAmple’yi görmek için sitede videoyu izleyin. Sayfanın üzerinde kırmızı veya yeşil olan bir kutu oluşturur, nasıl doğrulanacağına bağlı olarak yalnızca renklerini kontrol edersiniz – AutomatedTester

+0

Doğru, vid'den bahseder, ancak bunu yapmanın kodu aslında Michael Tamm'un diğer projesinde: http://code.google.com/p/w3c-biçimlendirme-validasyon filtresi /. Bu kodu sistemimde hala çalıştırmayı başaramadım (Java'ya sık sık dokunmam, bu yüzden biraz yavaşım) ama bunu yapmayı dört gözle bekliyorum. Şerefe :) – sampablokuper

1

adresindeki W3C doğrulama olduğunu sampablokuper için. İşte benim ilerlemem şu ana kadar.

document.documentElement.outerHTML JavaScript niteliği, bazı tarayıcılarda, ör. Safari ve Chrome, ancak Firefox'ta değil. Bu size DOM manipulasyonlarının sonucunu gösterecek, ancak size sayfa için tam kaynak kodunu vermeyecektir. DOM manipülasyonunuz gerçekleştirildikten sonra document.documentElement.outerHTML değerini saklayacak bir JavaScript'i enjekte ederseniz, bu değeri W3C Validator'un "doğrudan giriş" metin kutusuna yazması ve göndermesi için Selenium'u almanız gerekir. . Geçerli bir (X) HTML belgesi haline getirmek için değeri uygun şekilde eklemeniz ve eklemeniz gerekir. Henüz bütün bu adımları Selenium'dan almadım. Bazı tarayıcılarda (ör. here olarak) URL'ye "görünüm-kaynağı:" önyüklemesi " " Firefox ve Chrome, ancak Safari'de değil. DOM manipülasyonlarının sonucunu göstermez. Ancak Selenium IDE'nin "view-source:" ile başlayan bir adresi açmasını sağlayamıyorum; her zaman eğik çizgi yapar ve bundan nasıl sakınacağını bilmiyorum.

İnsanların denedikleri diğer yaklaşımları ve başarıları olup olmadığını bilmek isterim!

0

Size Javascript tarafından manipüle edilmiş bütün akım DOM HTML verecek

String html = selenium.getEval("window.document.body.innerHTML"); 

deneyin.