簡體   English   中英

C# Selenium 網絡驅動程序

[英]C# Selenium Webdriver

我開始將 selenium 與 CS 一起使用,但遇到一個問題。 編譯代碼時,程序找不到 webdriver 路徑,因為它正在被移動到 .exe 文件中。 我通過將驅動程序復制到 bin 文件夾中解決了這個問題,因此程序可以再次訪問它。 但是,我希望它能夠訪問 inside.exe 文件中的那個驅動程序。 我在 python 中使用 os 路徑執行此操作:

def resource_path(relative_path: str) -> str:
    try:
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.dirname(__file__)
    return os.path.join(base_path, relative_path)

如果有人知道如何在 cs 中執行此操作,請告訴我。 我在 c# 中使用的代碼:

var browser = new EdgeDriver();
browser.Navigate().GoToUrl(link);

webdrivermanager 在這里應該更有幫助。 您可以添加它的 Nuget 並用於管理瀏覽器的驅動程序,而無需驅動程序 exe 文件。

每當我需要瀏覽器時,我都會使用類似的方法並調用此方法。

        public static InternetExplorerDriver InitBrowser(string browserName)
        {
            switch (browserName)
            {
                case "IE":
                    {
                        var IE_DRIVER_PATH = @"C:\PathTo\IEDriverServer";
                        InternetExplorerDriver driver = new InternetExplorerDriver(IE_DRIVER_PATH);
                        return driver;
                    }
            }
            return null;
        }

這允許您定義從中獲取驅動程序的路徑,因此您不必依賴它在您的 BIN 文件夾中。 還有其他解決方案,但這就是我所擁有的,對我來說非常有效。 您可以通過添加更多 switch case 來設置將此方法用於其他瀏覽器,並且您還可以從這里輕松添加瀏覽器選項。 您可以使用以下方法在測試中調用該方法:

InternetExplorerDriver driver = InitBrowser(IE);

這里簡化了沒有開關盒的情況:

    var IE_DRIVER_PATH = @"C:\PathTo\IEDriverServer";
    InternetExplorerDriver driver = new InternetExplorerDriver(IE_DRIVER_PATH);

暫無
暫無

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

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