Java 如何在C#Selenium WebDriver中等待登录cookie?
我以前只使用过Java,但需要在C#中设置一些测试 在登录测试中,我希望有一个等待方法等待登录cookie被设置 在Java中,我可以做类似的事情,但无法在C#中创建相同的代码,有人能帮我将此代码转换为C#吗Java 如何在C#Selenium WebDriver中等待登录cookie?,java,c#,selenium-webdriver,Java,C#,Selenium Webdriver,我以前只使用过Java,但需要在C#中设置一些测试 在登录测试中,我希望有一个等待方法等待登录cookie被设置 在Java中,我可以做类似的事情,但无法在C#中创建相同的代码,有人能帮我将此代码转换为C#吗 public void getTokenCookie(){ 试一试{ 等等( 新的ExpectedCondition(){ @凌驾 公共Cookie应用(WebDriver WebDriver){ Cookie tokenCookie=driver.manage().getCookieNa
public void getTokenCookie(){
试一试{
等等(
新的ExpectedCondition(){
@凌驾
公共Cookie应用(WebDriver WebDriver){
Cookie tokenCookie=driver.manage().getCookieNamed(“nameOfCookie”);
if(tokenCookie!=null){
System.out.println(“\n添加了“+tokenCookie”);
返回令牌cookie;
}否则{
System.out.println(“等待cookie…”);
返回null;
}
}
}
);
}捕获(例外e){
System.out.println(e.getMessage());
失败(“登录失败,未设置cookie”);
}
}
在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时不需要ExpectedConditions
。您可以根据您的情况发送一个Func
还值得注意的是,如果直到
未能满足条件,它将在抛出之前检查配置的忽略异常类型列表。-
有关使用dotnet绑定获取cookie的更多详细信息,请查看接口
可以找到有关通常使用dotnet绑定的自定义等待的其他信息
希望这有帮助 非常感谢您的解释和代码片段Jordan,非常感谢!
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;
}