Program.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using OpenQA.Selenium;
  2. using OpenQA.Selenium.Chrome;
  3. using System;
  4. using System.IO;
  5. using System.Reflection;
  6. using System.Text;
  7. using System.Threading;
  8. namespace HTEXChart
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. //ChromeOptions op = new ChromeOptions();
  15. //op.AddArguments("--headless");//开启无gui模式
  16. //op.AddArguments("--no-sandbox");//停用沙箱以在Linux中正常运行
  17. //ChromeDriver cd = new ChromeDriver(Environment.CurrentDirectory, op, TimeSpan.FromSeconds(180));
  18. //cd.Navigate().GoToUrl("http://chart.icaile.com/sd11x5.php");
  19. //string text = cd.FindElementById("fixedtable").Text;
  20. //cd.Quit();
  21. PageScreenshotAll("https://cdhabook.teammodel.cn/ziteng/index.html", "F:\\111.png");
  22. //Console.WriteLine(text);
  23. // Console.Read();
  24. }
  25. public static void PageScreenshotAll(string url, string path)
  26. {
  27. ChromeDriver driver = null;
  28. try
  29. {
  30. ChromeOptions options = new ChromeOptions();
  31. options.AddArguments("headless", "disable-gpu");
  32. driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), options);
  33. driver.Navigate().GoToUrl(url);
  34. string width = driver.ExecuteScript("return document.body.scrollWidth").ToString();
  35. string height = driver.ExecuteScript("return document.body.scrollHeight").ToString();
  36. driver.Manage().Window.Size = new System.Drawing.Size(int.Parse(width)+40, int.Parse(height)); //=int.Parse( height);
  37. var screenshot = (driver as ITakesScreenshot).GetScreenshot();
  38. screenshot.SaveAsFile(path);
  39. }
  40. catch (Exception ex)
  41. {
  42. // logger.Error(ex.Message + Environment.NewLine + ex.StackTrace);
  43. }
  44. finally
  45. {
  46. if (driver != null)
  47. {
  48. driver.Close();
  49. driver.Quit();
  50. }
  51. }
  52. }
  53. public static void PageScreenshot(string url, string path)
  54. {
  55. ChromeDriver driver = null;
  56. try
  57. {
  58. ChromeOptions options = new ChromeOptions();
  59. options.AddArguments("headless", "disable-gpu");
  60. driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), options, TimeSpan.FromSeconds(10));
  61. driver.Navigate().GoToUrl(url);
  62. var screenshot = (driver as ITakesScreenshot).GetScreenshot();
  63. screenshot.SaveAsFile(path);
  64. //driver.Navigate().GoToUrl("F:\\ECharts1\\index.html");
  65. //var screenshot1 = (driver as ITakesScreenshot).GetScreenshot();
  66. //screenshot1.SaveAsFile("F:\\222.png");
  67. }
  68. catch (Exception ex)
  69. {
  70. // logger.Error(ex.Message + Environment.NewLine + ex.StackTrace);
  71. }
  72. finally
  73. {
  74. if (driver != null)
  75. {
  76. driver.Close();
  77. driver.Quit();
  78. }
  79. }
  80. }
  81. }
  82. }