selenium 通过Assert.assertEquals比较整个URL

jaxagkaj  于 2022-12-04  发布在  其他
关注(0)|答案(4)|浏览(152)

我想比较网址和打印,所以我用了下面的代码。但它是比较整个网址一样,如下
已对以下URL进行实际比较:

https://accounts.google.com/signin/v2/identifier?service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&ss=1&scc=1&ltmpl=default&ltmplcache=

我使用的代码:

String URL = driver.getCurrentUrl();
Assert.assertEquals(URL, "https://accounts.google.com" );
System.out.println(URL);

所需解决方案:
我只想比较' https://accounts.google.com '
请帮我解决这个问题

eyh26e7m

eyh26e7m1#

访问 urlhttps://accounts.google.com时,url 设置为:

https://accounts.google.com/signin/v2/identifier?service=mail&passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&ss=1&scc=1&ltmpl=default&ltmplcache=

url 本质上是动态的。因此您将无法将assertEquals()用作:

  • assertEquals()定义为:
void org.testng.Assert.assertEquals(String actual, String expected)

Asserts that two Strings are equal. If they are not, an AssertionError is thrown.

Parameters:
    actual the actual value
    expected the expected value

因此assertEquals()将验证两个 * String * 是否相同。因此,您将看到错误。

溶液

要Asserthttps://accounts.google.com在 * 当前url* 中的存在,可以使用函数Assert.assertTrue(),如下所示:

String URL = driver.getCurrentUrl();
Assert.assertTrue(URL.contains("https://accounts.google.com"));
System.out.println(URL);

说明

  • assertTrue()定义为:
void org.testng.Assert.assertTrue(boolean condition)

Asserts that a condition is true. If it isn't, an AssertionError is thrown.

Parameters:
    condition the condition to evaluate
0yycz8jy

0yycz8jy2#

在您情况下,不应使用'assertEquals',而应使用'assertTrue'

Assert.assertTrue(URL.startsWith("https://accounts.google.com"));
lf5gs5x2

lf5gs5x23#

我已经使用了下面的代码,它对我来说工作正常

String URL = driver.getCurrentUrl();
    if(URL.contains("url name"))
    {
        System.out.println("Landed in correct URL" +
                "" + URL);

    }else
    {
        System.out.println("Landed in wrong URL");

    }
w9apscun

w9apscun4#

如果你想删除Assert.assertTrue并检查你的url,那么使用这个简单的技术如下代码. AssertEquals,Assertions Assert.assertTrue(url.equals("https://www.instagram.com/hiteshsingh00/?hl=en"));
也可以写成Assert.assertEquals(true,url.equals("https://www.instagram.com/hiteshsingh00/?hl=en"));
也是assertTrue(x == 2);assertEquals(2,x);

相关问题