2015-05-15 27 views
5

Selenium kullanarak sayfa içeriği almak için bilinmeyen üçüncü taraf web sitelerinde Araştırma ve Geliştirme yapıyorum.Bir site Ajax kullanıyorsa Selenium WebDriver ile nasıl kontrol edilir?

Web sitesi Ajax tabanlı veya Ajax tabanlı olmayan bir bilgi olup olmadığını nasıl anlarım. Bilinmeyen web sitesinin içeriğinde id veya etiket adı kullanıp kullanmadığımı kontrol etmek için herhangi bir veri bilmiyorum, bu yüzden Ajax tabanlı olup olmadığını nasıl kontrol etmeliyim.

+0

lütfen http://stackoverflow.com/help/how-to-ask adresini okuyun ve ne denediğiniz ve nelerin işe yaramadığı hakkında daha fazla bilgi verin. – Dude

+2

Aslında, bu ilginç bir sorundur. – alecxe

+1

Tam olarak ne demek "Ajax Tabanlı" ile, Ajax çağrıları varsa veya Basit Sayfa Uygulaması ise? örneğin (Angular JS) Sorun ajax kullanarak birçok yaklaşım var. Benim düşüncemde ana engeldir. Bir model yok .. –

cevap

1

Yerinde olsaydım, bir proxy kurar ve tüm WebDriver trafiğini bunun üzerinden yönlendirirdim. Eğer Ajax çağrılan olduğunu, vekil, her istek için ben istek başlıklarını ayrıştırma ve sen, sen (güven adil miktarda) demek ki varsa başlığında

X-Requested-With = XMLHttpRequest 

Reference

aramaya . Kaçırılacağınız bazı köşe durumları olabilir, ancak bu size en çok yardımcı olacaktır. Her neyse, Ajax çağrılarının sayfa yüklemesinde yapılamayacağını düşünmeniz gerekir, bu çağrıları tetiklemek için kullanıcı etkileşimi gerektirebilir.

Sen WebDrivers getPageSource() yöntemini kullanarak bunu çözmek ve $.get( ve $.post( ve $.ajax( ve elde edebilirsiniz tüm diğerleri gibi desenleri arayan çıkışına bazı yöntem uygulamak için deneyebilirsiniz

.

Ayrıca, proxy'yi ayarlama hakkında this answer ile ilgilenebilirsiniz.