我是 Selenium 的新手,正在尝试使用 selenium/cucumber/junit 框架作为试用框架。我有一个简单的测试来登录网站,并根据登录后实际 URL 是否与预期 URL 匹配来通过/失败测试。当故意使实际网址与预期网址不匹配时,cucumber 报告显示通过。
我的测试使用代码调用断言文件:
public static boolean validatePageURL(WebDriver driver, String expectedURL)
{
boolean result=false;
if(driver.getCurrentUrl().equalsIgnoreCase(expectedURL));
{
result=true;
}
return result;
如果我注释掉 If 语句,则会返回正确的 boolean 结果。如果我将“result=true”更改为“result=false”, cucumber 报告将显示失败。
这是我的步骤代码:
@When("^User enters username$")
public void user_enters_username() throws Throwable{
login =new LoginPage(driver);
login.enterUsername("user1");
}
@And("^User enters password$")
public void user_enters_password() throws Throwable {
login.enterPassword("P123456");
}
@And("^User clicks login button$")
public void user_clicks_login_button() throws Throwable {
login.clickLoginButton();
}
@Then("^User is logged in successfully$")
public void user_is_logged_in_successfully() throws Throwable {
Assertions.assertTrue(Compare3.validatePageURL(driver, "incorrecturl"));
我的断言文件有:
public class Compare3 {
public static boolean validatePageURL(WebDriver driver, String expectedURL)
{
boolean result=false;
if(driver.getCurrentUrl().equalsIgnoreCase(expectedURL));
{
result=true;
}
return result;
在上面的场景中,我希望 Cucumber 报告显示失败,因为实际 URL 和预期 URL 不匹配。
我可以通过注释掉 if 语句或更改 if 语句中的结果值来使报告显示失败购买。
最佳答案
您的 if
条件不起作用,因为 if
条件后面有一个终止符 ;
,因此代码永远不会真正进入 if 条件并且 boolean
值永远不会改变。
您只需删除 if
条件之后出现的 ;
,您的代码就可以正常工作。
if(driver.getCurrentUrl().equalsIgnoreCase(expectedURL)){
result=true;
}
关于java - 当 url 不匹配时,匹配 driver.getcurrenturl () 和预期 url 报告的断言将通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58050605/