[英]How to wait for login cookie in C# Selenium WebDriver?
我只是以前使用過Java,但需要在C#中設置一些測試。
在登錄測試中,我希望有一個等待方法來等待設置登錄cookie。
在Java中,我可以執行類似的操作,但是無法在C#中創建相同的代碼,誰能幫助我將此代碼轉換為C#?
public void getTokenCookie(){
try {
wait.until(
new ExpectedCondition<Cookie>() {
@Override
public Cookie apply(WebDriver webDriver) {
Cookie tokenCookie = driver.manage().getCookieNamed("nameOfCookie");
if (tokenCookie != null) {
System.out.println("\nToken Cookie added: " + tokenCookie);
return tokenCookie;
} else {
System.out.println("waiting for cookie..");
return null;
}
}
}
);
} catch (Exception e){
System.out.println(e.getMessage());
fail("Failed to login, no cookie set");
}
}
在C#中,我相信上面看起來像這樣:
public Cookie GetTokenCookie()
{
var webDriver = new ChromeDriver(); //or any IWebDriver
var wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(10));
Cookie cookie = default(Cookie);
try
{
cookie = wait.Until(driver =>
{
Cookie tokenCookie = driver.Manage().Cookies.GetCookieNamed("nameOfCookie");
if (tokenCookie != null)
{
Console.WriteLine("\nToken Cookie added: " + tokenCookie);
return tokenCookie;
}
else
{
Console.WriteLine("waiting for cookie...");
return null;
}
});
}
catch (Exception e)
{
Console.WriteLine($"{e.Message}");
}
return cookie;
}
在dotnet綁定中,使用WebDriverWait.Until<T>
時不需要ExpectedConditions
。 您可以根據需要輸入Func<IWebDriver, T>
。
還值得注意的是,如果Until
條件不滿足條件,它將在拋出之前檢查已配置的忽略異常類型的列表。 - 有關配置這些的詳細信息
有關使用dotnet綁定獲取cookie的更多詳細信息,請查看ICookieJar界面。
可以在此處找到有關通常使用dotnet綁定進行自定義等待的其他信息。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.