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’,同时请注意我正在写日志以更好地了解正在发生的事情。

这使您可以根据需要灵活地选择性地打开或关闭图像。