[英]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.