博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net core 利用Selenium和PhantomJS后台生成EChart图片
阅读量:5245 次
发布时间:2019-06-14

本文共 2073 字,大约阅读时间需要 6 分钟。

1.引用

NuGet安装:

Selenium.Support

Selenium.WebDriver

Selenium.WebDriver.PhantomJS.CrossPlatform  (分布Linux时把对应PhantomJS复制到发布目录)

2.后台打开的页面

 

@{    Layout = "/Views/Shared/Ordinary.cshtml";    ViewData["Title"] = "图表模版";}@section css{    
}
View Code

 

3.生成图片代码

 

PhantomJSDriverService pds = PhantomJSDriverService.CreateDefaultService(AppDomain.CurrentDomain.BaseDirectory.ToString());                    var driver = new PhantomJSDriver(pds);                    var request = injection.GetHttpContext.HttpContext.Request;                    StringBuilder url = new StringBuilder();                    url.Append(request.Scheme);                    url.Append("://");                    url.Append(request.Host);                    url.Append("/Business/Report/TemplateEChart");                    driver.Navigate().GoToUrl(url.ToString());//打开链接
View Code
//执行js                    ((IJavaScriptExecutor)driver).ExecuteScript("myChart.setOption(" + JsonHelper.ObjectToJson(ff) + ");");                    //截图保存                    Screenshot screenshot = ((ITakesScreenshot)driver).GetScreenshot();                    string mapPath = @hostingEnvironment.WebRootPath;                    string imgPatht = "/report/tempImg";                    string dirt = mapPath + imgPatht;                    if (!Directory.Exists(dirt))                    {                        DirectoryInfo dirInfo = Directory.CreateDirectory(dirt);                    }                    string imgSrct = imgPatht + "/" + Guid.NewGuid().ToString() + ".png";                    string fullPatht = mapPath + imgSrct;                    screenshot.SaveAsFile(fullPatht, ScreenshotImageFormat.Png);                    //退出                    driver.Quit();
View Code

 

错误:Permission denied

解决方法:PhantomJS文件设置最高权限

错误:System.TypeInitializationException: The type initializer for 'Gdip' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'libgdiplus': The specified module could not be found.

解决方法:Linux安装    yum install libgdiplus

转载于:https://www.cnblogs.com/asd14828/p/10572743.html

你可能感兴趣的文章
.net 文本框只允许输入XX,(正则表达式)
查看>>
实验2-2
查看>>
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
BootScrap
查看>>
Java实现二分查找
查看>>
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
php7 新特性整理
查看>>
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
03 线程池
查看>>
手机验证码执行流程
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
jquery的contains方法
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
桥接模式-Bridge(Java实现)
查看>>
303. Range Sum Query - Immutable
查看>>
【★】浅谈计算机与随机数
查看>>
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>