LoginSignup
1
1

More than 1 year has passed since last update.

RiderとSelenium

Last updated at Posted at 2021-06-07

Chromeで動作させる

  • Chromeをインストールする
Nugetからインストール
Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.ChromeDriver 
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var chrome = new ChromeDriver(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));
            chrome.Url = "http://google.com/";
            //特定のURLを開いて待機する
            Console.ReadKey();
            chrome.Quit();
        }
    }
}

Chrominumで動作させる

  • Chromeをアンインストールする
  • Chrominumをインストールする
  • ChromeDriverをインストールする

ChromeをアンインストールしないとChrominumが立ち上がらないです。

Nugetからインストール
Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.ChromeDriver 
Chrominumとドライバをインストールする
$ sudo apt-get update

$ sudo apt-get install chromium-browser

$ sudo apt-get install chromium-chromedriver

$ chromium-browser --version

$ chromedriver --version

# 日本語フォントをインストールする
$ sudo apt-get install fonts-ipafont-gothic fonts-ipafont-mincho

参考

chromedriverのインストールされた場所を調べる

$ which chromium-browser
$ which chromedriver

chromedriverは/usr/bin/chromedriverにインストールされます。
C# ChromeDriver関数にパスを指定する。ここでは「/usr/bin/」を指定する

var driver = new ChromeDriver("/usr/bin/");
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;

namespace SeleniumConsoleApp
{
    class Program
    {
        static void _mkFireFox()
        {
            IWebDriver driver =new FirefoxDriver(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));

            driver.Navigate().GoToUrl("https://www.google.com/?hl=ja");
            //特定のURLを開いて待機する
            Console.ReadKey();
            driver.Quit();
        }

        static void _mkChromnimu()
        {
            var driver = new ChromeDriver("/usr/bin/");
            driver.Navigate().GoToUrl("https://www.google.com/?hl=ja");
            //特定のURLを開いて待機する
            Console.ReadKey();
            driver.Quit();
        }

        static void Main(string[] args)
        {

            _mkFireFox();

            _mkChromnimu();
        }
    }
}

FireFoxで動作させる

  • FireFoxをインストールする
  • GeckoDriverをNugetからインストールする
Nugetからインストール
Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.GeckoDriver

上記のプログラムで動作します。

ユーザープロファイルの保存指定する

引数 内容
–user-data-dir ユーザープロファイルの保存先を指定
–profile-directory 使用するユーザープロファイルを指定

引数を指定しない場合

–user-data-dirを指定しない場合

  • プロファイルは一時ファイルとして作成され、Chrome終了後に廃棄されます。

–profile-directoryを指定しない場合

  • ユーザープロファイルは–user-data-dirで指定したフォルダ内のデフォルトのプロファイル(通常はDefault)を使用します。

指定したフォルダが存在しない場合

  • –user-data-dir、–profile-directoryに指定したフォルダが存在しない場合は、自動でフォルダが作成されます(Windows環境でのみ確認)ので、タイプミスに注意しましょう。
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace example
{
    class Program
    {
        static void Main(string[] args)
        {
            ChromeOptions options = new ChromeOptions();
            options.AddArgument("--user-data-dir=D:\\tmp\\User Data");
            options.AddArgument("--profile-directory=Profile1");
            options.AddArgument("--lang=en");
            String path = @"D:\tmp\driver\chromedriver_win32";    //フォルダを指定

            IWebDriver driver = new ChromeDriver(path, options);
            driver.Navigate().GoToUrl("chrome://version");
            Console.ReadKey();
            driver.Quit();
        }
    }
}

参考

プラウザを開いた後、非同期で待機状態にする

プラウザを開いた後、GTKアプリ側で処理をしたい場合は非同期で待機状態にします。
Selenium.Support.UIのWebDriverWaitを使います。

Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.ChromeDriver 
Install-Package Selenium.Support
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var chrome = new ChromeDriver(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));
            chrome.Url = "http://google.com/";
            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
        }
    }
}

Gtk3アプリ RiderとWebViewに続く

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1