選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

58 行
1.7KB

  1. using System;
  2. using System.Reflection;
  3. using System.IO;
  4. using OpenQA.Selenium;
  5. using OpenQA.Selenium.Chrome;
  6. using OpenQA.Selenium.Support.UI;
  7. using SeleniumExtras.WaitHelpers;
  8. using WebDriverManager;
  9. using WebDriverManager.DriverConfigs.Impl;
  10. namespace CSVDownloader.Web {
  11. class DriverFactory {
  12. public static ChromeDriver GetDriver() {
  13. CreateDir();
  14. var options = new ChromeOptions();
  15. // options.AddArgument("--headless");
  16. //options.BinaryLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\chrome-win64\\chrome.exe";
  17. String download_dir = GetTmpDownloadDir();
  18. options.AddUserProfilePreference("download.default_directory", download_dir);
  19. //ChromeDriver driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), options);
  20. new DriverManager().SetUpDriver(new ChromeConfig());
  21. ChromeDriver driver = new ChromeDriver(options);
  22. WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
  23. return driver;
  24. }
  25. public static String GetTmpDownloadDir() {
  26. return Path.GetFullPath("tmp_download");
  27. }
  28. public static String GetDownloadDir() {
  29. return Path.GetFullPath("download");
  30. }
  31. private static void CreateDir() {
  32. String tmpdownload_dir = GetTmpDownloadDir();
  33. String download_dir = GetDownloadDir();
  34. if (!Directory.Exists(tmpdownload_dir)) {
  35. Directory.CreateDirectory(tmpdownload_dir);
  36. }
  37. if (!Directory.Exists(download_dir)) {
  38. Directory.CreateDirectory(download_dir);
  39. }
  40. }
  41. }
  42. }