2015-05-15 47 views
5

我正在研究和开发一些未知的第三方网站,以使用硒获取页面内容。如何使用Selenium WebDriver检查网站是否使用Ajax?

我应该如何知道网站是基于Ajax还是基于非Ajax。 我不知道里面的未知网站的任何数据来检查,虽然使用ID或标签名称,所以我应该如何检查它基于Ajax或不。

+0

请阅读http://stackoverflow.com/help/how-to-ask,并提供更多关于你已经尝试和什么都没有工作的信息 – Dude

+2

其实,这是一个有趣的问题。 – alecxe

+1

你是指“基于Ajax”的意思,如果存在一些Ajax调用或者它是简单页面应用程序?例如(Angular JS)问题是有很多方法通过使用Ajax。这是我认为的主要障碍。有没有一种模式.. –

回答

1

如果我是你,我会建立一个代理服务器,并通过它路由所有的WebDriver流量。在代理,为每个请求我将会解析请求头和找头

X-Requested-With = XMLHttpRequest 

Reference

如果你有,你可以(有相当的信心)说,那你有Ajax调用。可能会出现一些你会错过的角落案例,但这应该让你获得大部分成功。

无论如何,您需要考虑Ajax调用可能无法在页面加载时完成,它可能需要用户交互才能触发这些调用。

你可以尝试使用WebDrivers getPageSource()方法来解决它,并运用一些方法来输出寻找像$.get($.post($.ajax(和所有其他的人,你能想出花样。

您可能也有兴趣this answer关于设置代理。

相关问题