我们如何测试从赛普拉斯现有标签重定向的新标签?

时间:2019-11-28 11:42:41

标签: javascript cypress

需要测试从现有选项卡重定向的新选项卡。我们如何在赛普拉斯中进行测试?

3 个答案:

答案 0 :(得分:0)

如果将其重定向到new url/tab(即新的子域),并且在cypress中以新标签页的形式打开,您仍然可以使用cypress进行测试。 我以邮递员网站为例来说明这一点。在邮递员站点中,单击Learning Center标签将打开一个新标签。下面的测试示例将在您现有的测试运行器选项卡中打开。请参考下面的代码:

context('New tab actions', () => {
    it('Test to open a new tab in cypress and test the page', () => {
      cy.visit('https://www.getpostman.com/');
      cy.get('#mobile-menu-button').click();
      cy.get('#mobileNav > #siteNav > nav > ul > li').contains("Product ");
      cy.get('#mobileNav > #siteNav > .site-nav__secondary-menu > a').first().then(($a)=>{
        const newUrl =  Cypress.$($a).attr('href'); 
        console.log(newUrl);
        cy.visit(newUrl);
        cy.get('.header__title').invoke('text').then((text)=>{
            const headerText = text;
            expect(headerText).to.contain('Learning Center');
            //Similarly you can follow the same mechanism and start writing all of remaining tests related to that page....
        })
      })
    })
})

答案 1 :(得分:-1)

您无法测试。赛普拉斯不支持新窗口和/或选项卡。您可以采取的解决方法是:

  1. 测试是否存在指向新窗口/标签的链接
  2. 创建另一个测试,该测试立即打开该窗口/选项卡的URL。

答案 2 :(得分:-2)

对于这种情况,我确实找到了一种解决方法,在这种情况下,我想访问一个新 URL,然后测试其内容。这对我有效,因为 URL 在 HTML Screenshot

中可用

如果有效就试试这个

Public Sub New()
    userAgent = "My UserAgent"
    InitializeComponent()
    Dim settings As New CefSettings()
    settings.UserAgent = userAgent

    CefSharp.Cef.Initialize(settings)
    browser = New List(Of ChromiumWebBrowser)

End Sub