5
我正在研究和开发一些未知的第三方网站,以使用硒获取页面内容。如何使用Selenium WebDriver检查网站是否使用Ajax?
我应该如何知道网站是基于Ajax还是基于非Ajax。 我不知道里面的未知网站的任何数据来检查,虽然使用ID或标签名称,所以我应该如何检查它基于Ajax或不。
我正在研究和开发一些未知的第三方网站,以使用硒获取页面内容。如何使用Selenium WebDriver检查网站是否使用Ajax?
我应该如何知道网站是基于Ajax还是基于非Ajax。 我不知道里面的未知网站的任何数据来检查,虽然使用ID或标签名称,所以我应该如何检查它基于Ajax或不。
如果我是你,我会建立一个代理服务器,并通过它路由所有的WebDriver
流量。在代理,为每个请求我将会解析请求头和找头
X-Requested-With = XMLHttpRequest
如果你有,你可以(有相当的信心)说,那你有Ajax
调用。可能会出现一些你会错过的角落案例,但这应该让你获得大部分成功。
无论如何,您需要考虑Ajax调用可能无法在页面加载时完成,它可能需要用户交互才能触发这些调用。
你可以尝试使用WebDrivers getPageSource()
方法来解决它,并运用一些方法来输出寻找像$.get(
和$.post(
和$.ajax(
和所有其他的人,你能想出花样。
您可能也有兴趣this answer关于设置代理。
请阅读http://stackoverflow.com/help/how-to-ask,并提供更多关于你已经尝试和什么都没有工作的信息 – Dude
其实,这是一个有趣的问题。 – alecxe
你是指“基于Ajax”的意思,如果存在一些Ajax调用或者它是简单页面应用程序?例如(Angular JS)问题是有很多方法通过使用Ajax。这是我认为的主要障碍。有没有一种模式.. –