C# を使用して Selenium WebDriver でスクリプトを作成しています。スクリプトでは、Web ページからいくつかのドキュメントをダウンロードしており、動的パスでダウンロードしたいと考えています。私は ChromeOptions クラスとそのメソッドを使用してタスクを達成しています。ここに私のサンプルコードがあります:
ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("download.default_directory", "C:\Users\Desktop\MyDownloads");
IWebDriver driver = new ChromeDriver(@"C:\Users\chromedriver_win32\" , options);
関数の開始時に上記のコードを使用している場合、正常に動作します。
ただし、パスが動的であるため、関数の途中で ChromeOptions クラスのプロパティを設定したいと考えています。したがって、ハードコードされたパスを文字列変数で変更し、関数の途中に次のコードを配置するだけです
ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("download.default_directory", strDownloadFinalPath);
IWebDriver driver = new ChromeDriver(@"C:\Users\chromedriver_win32\" , options);
ここで、関数の途中または実行時に ChromeOptions を更新すると、ChromeDriver の別のインスタンスが作成され、別のクロム ウィンドウが開きます。ChromeOptions クラスのプロパティは更新されません。IChromeDriver クラスから chromedriver.exe のパスを削除するなど、いくつかの実験を行いましたが、次のエラーが発生し始めました。
chromedriver.exe ファイルが現在のディレクトリまたは PATH 環境変数のディレクトリに存在しません。
IWebDriver クラスの別のインスタンスを作成せずに、コードの途中で ChromeOptions を設定する方法は何でしょうか?