Tôi đã thêm gói gói WebDriver.ChromeDriver vào giải pháp của mình, chứa tệp ChromeDriver.exe, bắt buộc đối với Selenium WebDriver để chạy thử nghiệm tự động bằng Chrome. Nhìn vào nội dung gói, nó chỉ chứa các tập tin tập tin sau đây:Gói Selenium WebDriver.ChromeDriver Nuget được cài đặt nhưng không hoạt động đối với MSTest
tools\chromedriver.exe
Điều này là phải làm là thêm thư mục này vào biến môi trường PATH để chromedriver.exe có thể truy cập qua đoạn mã sau (đây là trong một dự án UnitTest sử dụng MSTest):
[TestMethod]
public void LaunchWebsite_Chrome()
{
// create ChromeDriver - this should work if chromedriver.exe
// is known to the environment PATH variable
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("http://localhost/");
}
Tuy nhiên, tôi vẫn nhận được những ngoại lệ sau đây:
Tệp chromedriver.exe không tồn tại trong thư mục hiện tại hoặc trong một thư mục trên biến môi trường PATH. Người lái xe có thể tải xuống tại http://code.google.com/p/chromium/downloads/list.
Nhìn vào các tài liệu NuGet, nó cho thấy rằng bất cứ điều gì trong cụ thư mục của gói NuGet sẽ được thêm vào biến môi trường PATH tự động:
http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package: Các công cụ thư mục của một gói là dành cho các kịch bản PowerShell và các chương trình có thể truy cập được từ Package Manager Console. Sau khi thư mục được sao chép vào dự án đích, nó được thêm vào biến môi trường `$ env: Path (PATH).
Tuy nhiên, điều này dường như không hoạt động. Tôi thậm chí còn chạy echo %PATH%
trên dòng lệnh và nó không hiển thị thư mục công cụ của tôi như đã đăng ký.
Tôi đang làm gì sai?
Bạn có tìm thấy câu trả lời cho câu hỏi này không? – Phphelp
Không thực sự, nhưng tôi nghĩ rằng tôi chỉ hiểu lầm những gì thiết lập các biến môi trường $ env: Path (PATH) có nghĩa là - Tôi đoán nó chỉ được thiết lập trong khi gói đang được cài đặt. Tôi đã sử dụng cách giải quyết được mô tả bởi @Arran –