C#使用PhantomJS webdriver ExecutePhantomJS过滤掉图像的示例
我希望能够有选择地打开和关闭某些图像。 我看过以下文章:
PhantomJS如何跳过下载资源
我也发现这篇文章使用python非常相似:
由PhantomJS / Python驱动的Selenium
我假设我可以通过webdriver.ExecutePhantomJS(string script, params object[] args)
来做到这一点。
我不知道的是,我是否需要首先通过Selenium PageFactory创建一些页面对象,然后调用此函数? 我怎么能再把它关掉 如何做到这一点的一个例子将非常有帮助。
我只是在寻找类似的东西……
例如,这将忽略以“.png”结尾的所有url:
using (var driver = new PhantomJSDriver()) { const string phantomScript = "var page=this;page.onResourceRequested = function(requestData, request) { var reg = /\\.png/gi; var isPng = reg.test(requestData['url']); console.log(isPng,requestData['url']); if (isPng){console.log('Aborting: ' + requestData['url']);request.abort();}}"; var script = driver.ExecutePhantomJS(phantomScript); driver.Navigate().GoToUrl("https://www.google.com/"); driver.GetScreenshot().SaveAsFile("googlewithoutimage.png",ImageFormat.Png); }
请注意,您在ExecutePhantomJS范围内寻找的’page’对象是’this’,同时请注意我正在写日志以更好地了解正在发生的事情。
这使您可以根据需要灵活地选择性地打开或关闭图像。