C#使用PhantomJS webdriver ExecutePhantomJS过滤掉图像的示例

nav*_*uel 6 c# phantomjs selenium-webdriver

我希望能够有选择地打开和关闭某些图像.我看过以下文章:

PhantomJS如何跳过下载资源

我也发现这篇文章使用python非常相似:

由PhantomJS/Python驱动的Selenium

我假设我可以通过这样做webdriver.ExecutePhantomJS(string script, params object[] args).

我不知道的是,我是否需要首先通过Selenium PageFactory创建一些页面对象,然后调用此函数?我怎么能再把它关掉 如何执行此操作的示例将非常有用.

Lin*_*ron 5

我只是在寻找类似的东西...

例如,这将忽略所有以“ .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);
}   
Run Code Online (Sandbox Code Playgroud)

请注意,您要查找的“页面”对象是ExecutePhantomJS范围中的“ this”,还请注意,我正在写日志以更好地了解正在发生的事情。

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

  • 如果有人像我一样第一次尝试 Selenium 和 PhantomJS 那么这些是要安装的 NuGet 包 http://i.imgur.com/8wc8QC4.png (2认同)