java - 当 url 不匹配时,匹配 driver.getcurrenturl () 和预期 url 报告的断言将通过

标签 java authentication selenium-webdriver junit cucumber-jvm

我是 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/

相关文章:

java - validate() 树在 L&F 更改时抛出 NullPointerException?

java - Spring Boot无法连接MySql

Java PriorityQueue 与自定义对象排序不正确

authentication - 如何使用 Node.js、Express 和 Mongoose 进行身份验证?

python - 使用 Python 和 Selenium Webdriver 存储动态下拉选项

java - 单击复选框时如何设置另一个项目可见?

.net - 如何在不使用 Authorize 属性的情况下获取 User.Identity 值?

php - Lumen HTTP 基本认证

java - Selenium +Java : Parallel execution for test cases having login functionality

java - 我如何使用 testng 将多个测试数据发送到以下内容