1.概述
在本文中,我们会快速看如何使用cookie和硒韦伯里夫在Java。
我们会谈谈一些用例,然后我们将直接金宝搏官网188be跳到代码中。
2.使用cookie
用于操纵cookie的日常用例是持续到测试之间的会话。
甚至更简单的方案是我们想要测试我们的后端是否正确设置Cookie。
在下一节中,我们将简要介绍处理简单代码示例的同时处理cookie。金宝搏官网188be
2.1。设置
我们需要添加Selenium-Java.依赖我们的项目:
<依赖> org.seleniumhq.selenium groupID> SELENIUM-JAVA ARIFACTID> 3.14.0 version> 依赖项>
让我们设置我们的测试课程:
公共类SeleniumCookiesJunitlivetest {私人Webdriver驱动程序;私有字符串Navurl;@Before public void setup(){capabilities capabilities = lausencecapabilities.firefox();司机=新的FirefoxDriver(能力);navurl =“https://b金宝搏188体育aeldung.com”;}}
2.2。读饼干
接下来,我们将实现一个简单的测试,以验证我们的驱动程序在我们导航到网页后是否存在cookie:
@test public void whennavige_thencookiesexist(){driver.navigate()。到(navurl);set cookie = driver.Manage()。GetCookies();assertthat(饼干,(不是(空()))));}
通常,我们可能想搜索特定的cookie:
@Test public void whenNavigate_thenLpCookieIsHasCorrectValue(){驱动程序导航().to(navUrl);Cookie lpCookie = driver.manage().getCookieNamed(“lp_120073”);为了(lpCookie.getValue (), containsString (" www.baeld金宝搏188体育ung.com "));}
2.3。cookie属性
Cookie可以与域相关联,有一个到期日,还有更多。
让我们来看看一些常见的cookie属性:
@test public void whennavige_thenlpcookiehascorRectprops(){driver.navigate()。至(invurl);Cookie lpCookie = driver.manage().getCookieNamed(“lp_120073”);assertthat(lpcookie.getdomain(),等于(“baeldun金宝搏188体育g.com”));asserthat(lpcookie.getpath(),等于(“/”));assertthat(lpcookie.getexpiry(),是(不是(nullvalue()))))));assertthat(lpcookie.issecure(),等于(false));assertthat(lpcookie.ishttponly(),等于(false));}
2.4。添加cookie.
添加cookie是一个简单的过程。
我们创建cookie并使用它将其添加到驱动程序中addcookie.方法:
@Test public void whenaddingcookie_thenitipresent () {driver.navigate().to(navUrl);Cookie Cookie = new Cookie(“foo”,“bar”);driver.manage () .addCookie(饼干);Cookie driverCookie = driver.manage().getCookieNamed(“foo”);为了(driverCookie.getValue(),等于(“酒吧”));}
2.5。删除cookie.
正如我们可能会预期的那样,我们还可以使用使用的cookiedeletecookie方法:
@test公共void whendeletingcookie_thenitaabsent(){driver.navigate()。至(invurl);Cookie lpCookie = driver.manage().getCookieNamed(“lp_120073”);assertthat(lpcookie,是(不是(nullvalue()))));Driver.Manage()。Deletecookie(LPCookie);cookie deletedcookie = driver.Manage()。GetCookienamed(“LP_120073”);assertthat(deletedcookie,是(nullvalue()));}
2.6。覆盖饼干
虽然没有明确的方法来覆盖饼干,但有一种简单的方法。
我们可以删除cookie并添加一个具有相同名称的新一个,但值不同:
@test公共void whootoveringcookie_thenityupdated(){driver.navigate()。到(navurl);Cookie lpCookie = driver.manage().getCookieNamed(“lp_120073”);Driver.Manage()。Deletecookie(LPCookie);cookie newlpcookie = new cookie(“lp_120073”,“foo”);driver.Manage()。AddCookie(NewLpcookie);cookie overriddencookie = driver.Manage()。GetCookienamed(“LP_120073”);assertthat(overriddencookie.getValue(),等于(“foo”));}
3.结论
在此快速教程中,我们学会了如何通过快速实际的示例在Java中使用Selenium WebDriver使用Cookie。
一如既往,代码可用在GitHub。