Tôi muốn:C#/ASP.NET Selenium WebDriver - Tái sử dụng Cookies
- Đăng nhập vào một trang web
- Save Cookies
- Cho người dùng một sự lựa chọn để làm A, B hoặc C
- A, B và C tất cả các yêu cầu được đăng nhập.
- Mỗi sẽ mở ra một FirefoxDriver và làm việc của riêng họ
Những gì tôi muốn làm, là đăng nhập ONCE, lưu cookie từ đó và thêm chúng vào bất kỳ FirefoxDriver nào khác mà tôi muốn mở.
Ngay bây giờ tôi đang cố gắng để lưu các cookie trong
public ReadOnlyCollection<Cookie> Cookies { get; set; }
mà là kết quả của
WebDriver.Manage().Cookies.AllCookies;
Giả sử đăng nhập làm việc và cookie được tiết kiệm ở trên, tôi có điều này:
WebDriver = new FirefoxDriver();
WebDriver.Navigate().GoToUrl("http://www.example.com");
if (cookies != null)
{
var s = WebDriver.Manage().Cookies; //Logged out cookies
WebDriver.Manage().Cookies.DeleteAllCookies(); //Delete all of them
var sd = WebDriver.Manage().Cookies; //Make sure theyre deleted
foreach (var cookie in cookies)
{
WebDriver.Manage().Cookies.AddCookie(cookie);
}
var ss = WebDriver.Manage().Cookies;
WebDriver.Navigate().GoToUrl("http://example.com/requiresloginpage");
}
Vấn đề là, tuy nhiên trên "ss" trong trường hợp này, cung cấp lỗi ngoại lệ này
AllCookies = 'ss.AllCookies' threw an exception of type
'OpenQA.Selenium.WebDriverException'
base {System.Exception} = {"Unexpected problem getting cookies"}
InnerException = {"Cookie name cannot be null or empty string\r\nParameter name: name"}
Tôi đang chuyển 8 cookie (tổng số khi bạn đăng nhập) - và tất cả chúng dường như được đặt và ok. Không chắc chắn những gì tôi đang làm sai
Bạn đã kiểm tra nội dung của 's', tôi giả sử? Những gì họ chứa Cookies có tất cả các giá trị của họ được thiết lập? – Arran
Bạn không chắc chắn ý bạn là gì nhưng ảnh chụp màn hình của cô ấy (chúng tôi có được phép đăng liên kết hình ảnh không?) [[Chưa đăng nhập (giá trị của 's'): http://i.imgur.com/P5weWDb.png]] [[Đã đăng nhập trong (cookie im đi qua): http://i.imgur.com/Hwyn07h.png]] –
Kiểm tra từng cookie bằng trình gỡ rối, nó có tên cũng như giá trị không? – Arran