Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cy.url()和/或cy.location(';href';)不返回字符串_Url_Automated Tests_E2e Testing_Cypress - Fatal编程技术网

cy.url()和/或cy.location(';href';)不返回字符串

cy.url()和/或cy.location(';href';)不返回字符串,url,automated-tests,e2e-testing,cypress,Url,Automated Tests,E2e Testing,Cypress,我有一个编辑页面。当我添加任何内容并单击“保存”按钮时,我的URL将更改,在URL中添加一个随机id。我想在每次单击“保存按钮”时检查我的ID是否都在更改 我将URL结果保存在变量中并希望检查它,我的操作如下: const currentURL=cy.url(); cy.get('.editor工具栏操作保存')。单击(); cy.url().should('not.eq',currentURL); 但是我的currentURL变量的类型不是字符串: 应不等于{Object(chainerId

我有一个编辑页面。当我添加任何内容并单击“保存”按钮时,我的URL将更改,在URL中添加一个随机id。我想在每次单击“保存按钮”时检查我的ID是否都在更改

我将URL结果保存在变量中并希望检查它,我的操作如下:

const currentURL=cy.url();
cy.get('.editor工具栏操作保存')。单击();
cy.url().should('not.eq',currentURL);
但是我的
currentURL
变量的类型不是字符串:

应不等于{Object(chainerId,firstCall)}


如何使用变量?

这些命令返回的是可链接的类型,而不是字符串等基本值,因此将它们分配给变量将需要进一步操作来“提取”字符串

为了获取url字符串,您需要执行以下操作

cy.url().then(urlString => //do whatever)
tl;博士 ,你必须使用它们的收益率

cy.url().then(url=>{
cy.get('.editor工具栏操作保存')。单击();
cy.url().should('not.eq',url);
});
解释 有人问了一个类似的问题,并详细解释了这一现象:

不能指定或使用任何Cypress命令的返回值。命令排队并异步运行

解决方案也显示为:

访问每个Cypress命令产生的结果

cy.get('button')。然后($btn)=>{
//$btn是上一个
//命令使我们屈服
})

还可以查看。

参考下面的代码片段,在这里可以获取当前URL并将其存储在变量中,通过cy.log()打印


谢谢你的回答。但当我使用这种格式时,我的URL显示了一部分。预期不等于中未显示的我的IDURL@NarinePoghosyan是的,因为您在单击按钮之前保存了URL。您说随机id是在您保存项目后添加的。对不起,我说错了。首先,我添加任何文本,然后单击“保存”并想要获取URL,然后我更改文本并再次单击“保存”。我的2个带有IDsI的URL更改了我的内容。谢谢亲爱的,在我的代码中添加cy.wait(2000)后它的工作谢谢亲爱的,它的工作,在我的代码中添加cy.wait(2000)后请注意,Cypress不是普通的wait/async JavaScript,而是使用它自己的可链接回调机制。只是为了确保在您说“Cypress是异步的”时不会出现混淆。
context('Get Current URL', () => {
 
    it('Get current url and print', () => {
        cy.visit('https://docs.cypress.io/api/commands/url')
    
        cy.url().then(url => {
            const getUrl = url
            cy.log('Current URL is : '+getUrl)
        })
    })
})