如何使用Cypress检查URL内容

14

我想检查我的URL内容并执行类似以下操作:

if (URL.include('path')) {
  //do something 
} else {
  // do something else
} 

我可以这样检查我的URL

cy.url().should('include', 'path');

但是当我将其粘贴到if运算符中时,它不起作用。

Translated:

但是当我将其粘贴到if运算符中时,它不起作用。

3个回答

13

建议您使用 .includes() 方法。该方法可以确定一个字符串是否包含指定字符串的字符:

const path = 'user/survey';

cy.url().then(($url) => {
    if($url.includes(path)) {
        cy.log("Yes")
    } else  {
        cy.log("No")
      }
})

3

您可以将location()then()结合使用。

以下是我如何操作的:

    cy.location('pathname').then((loc) => {
        if(loc == '/my/path') {
            ...do
        } else {
           ...smth else
        } 
    })

希望这能解决你的问题, 祝好


感谢您的回答。当我打印LOC时,结果是Object {14},并且始终执行ELSE字段。 - Narine Poghosyan
@François: 如果是部分搜索,loc == '/my/path' 可能不为真,应该使用 loc.includes('/my/path') - Sree.Bh
1
@Sree.Bh 是的,在我的使用情况中,我正在检查登录页面,因此不需要“包含”,但是你的答案更加通用! - François

2
我找到了答案,但它非常长。有什么想法吗?
      cy.url().then(url => {
         const currentURL = url.split('/path/');
         const pathURL = currentURL[1];
         if(pathURL === 'user/survey')
         {
            cy.log('aaaaaaaaaa')
         } else {
            cy.log('bbbbbbbbb')
         }
     })


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接