【问题标题】:webdriver getCurrentUrl adding symbol "/" at the end of URL [duplicate]webdriver getCurrentUrl在URL末尾添加符号“/”[重复]
【发布时间】:2018-03-26 13:45:44
【问题描述】:

大家好!

我写了一个测试来检查网站重定向。 WebDriver 打开错误的 URL 并且站点后端应该重定向到正确的地址。

示例: 打开网址:http://lenal.eu 预期网址:https://lenal.eu

在浏览器命令行中,我在重定向后看到正确的地址。 但是 getCurrentUrl 在 URL 末尾返回带有“/”的地址并且测试失败。 我尝试从元标记链接 rel="canonical" 获取当前网址,但使用“/”得到相同的结果

@Test(dataProvider = "Links collection", dataProviderClass = RedirectParser.class)
public void redirects(String execUrl, String expUrl) throws IOException {
    //System.out.println(execUrl+"======"+expUrl);
    open(execUrl);
    System.out.println("Executed URL: "+execUrl+" Actual page URL: "+url() + " Expected page URL: "+expUrl);
    System.out.println($(byXpath("/html/head/link[@rel='canonical']")).getAttribute("href"));
}

我该如何解决这个问题?

【问题讨论】:

  • 修剪我猜会起作用的角色。对于那些想知道的人,我不是 OP。我只是另一个安德鲁。
  • 为什么会出现问题?那不会转到同一页面吗?
  • @Chai 这是一个问题,因为 webdriver 收到的 URL 不等于浏览器命令行中的实际 URL
  • @FlorentB。我知道如何比较几个值。不同事物的主要问题。根据 CEO 标准,所有以“/”结尾的 URL 都应重定向到没有“/”的页面
  • @Andrew 是的,我知道,但这不能解决主要问题)))

标签: java selenium selenium-webdriver webdriver selenium-chromedriver


【解决方案1】:

这就是 Web 的工作方式。没有像http://example.com 这样的东西,它始终是http://exampe.com/,因为从服务器请求的路径是/

浏览器会显示不带/ 的网址,但/ 仍然存在

查看浏览器如何显示https://stackoverflow.comdocument.location.hrefhttps://stackoverflow.com/。这只是javascript,甚至还没有硒进入图片。所以不要为此责怪硒。这是预期的行为

【讨论】:

  • 另外值得一提的是,从栏中复制网址也会在末尾添加一个空路径。
猜你喜欢
  • 2023-03-29
  • 2017-06-15
  • 2023-01-09
  • 1970-01-01
  • 2014-02-03
  • 2016-05-27
  • 2021-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多