簡體   English   中英

如何將屬性設置為ChromeOptions類?

[英]How can I set the properties to ChromeOptions class?

我正在使用C#在Selenium WebDriver中編寫腳本。 在腳本中,我正在從網頁上下載一些文檔,並且希望以動態路徑下載它。 我正在使用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實例並打開另一個chrome窗口。 它不會更新ChromeOptions類的屬性。 我做了一些實驗,例如從IChromeDriver類中刪除chromedriver.exe的路徑,但它開始出現以下錯誤:

chromedriver.exe文件在當前目錄或PATH環境變量上的目錄中不存在。

在代碼中間設置ChromeOptions而不創建IWebDriver類的另一個實例的方法是什么?

您只能通過類構造函數設置ChromeOptions,從而設置下載路徑。 實例化ChromeDriver后,沒有任何屬性可以更新。 因此,最后一個問題(“不創建另一個實例”)的答案是,您不能。

為此,我要做的就是檢查Chrome中的“在下載前詢問將文件保存在哪里”設置,然后在測試中與“另存為”對話框提示進行交互,輸入完整的動態保存文件路徑並單擊“保存”。 問題是這是Windows對話框,Selenium無法與其交互。 我正在使用MS CodedUI來使用它。 我的另存為提示對話框類:

using Microsoft.VisualStudio.TestTools.UITesting.WinControls;

public class WindowsDialogBoxView : WinWindow
{
    public WindowsDialogBoxView()
    {
        this.SearchProperties[WinWindow.PropertyNames.ClassName] = "#32770";
    }

    public WinEdit FilenameEdit
    {
        get
        {
            this.filenameEdit = new WinEdit(this);
            this.filenameEdit.SearchProperties[WinEdit.PropertyNames.Name] = "File name:";
            return this.filenameEdit;
        }
    }
    private WinEdit filenameEdit;

用法:

WindowsDialogBoxView WindowsDialogBox = new WindowsDialogBoxView();
Keyboard.SendKeys(WindowsDialogBox.FilenameEdit, "C:\\myFileSavePath\\Blah\\FileToSave.abc");

我在與對話框的“保存”按鈕進行交互時遇到困難,因此我使用Keyboard.SendKeys("{ENTER}"); 您可能需要在其中添加一些{TAB}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM