有没有办法通过柏树从目标网站访问全球vars



我有一个网站,我想用柏树测试它。这个网站正在使用坐标,这些坐标存储在一个全局变量中

我想写一个测试,访问这些坐标并检查它们是否正确。有没有办法用柏树做这个?

我的意思是,有一种方法可以通过控制台访问DevTools(Chrome(中的vars,所以它应该也可以使用Cyprus,对吧。。。?

谢谢你的帮助<3

我在网上搜索了一下,但没有找到任何关于这件事的信息。我尝试(就像在chrome DevTools中一样(直接访问vars,但没有成功。。。

编辑:等待!我很笨

我没有意识到;全局";var与";窗口";变量。。。。所以,我现在用@Nichola Walker 的解决方案访问它

如果您所说的全局var是指const coordinates =let coordinates =var coordinates =,那么您可以在window上公开对该变量的引用,这是应用程序和测试通用的全局上下文。

在应用程序中

const coordinates = {x:1, y:2}
if (window.Cypress) {            // if window.Cypress is defined then we are testing 
window.coordinates = coordinates
}

在测试中

cy.window().then(window => {
expect(window.coordinates).to.deep.eq({x:1, y:2})    // passes
})

如果我理解正确,答案是否定的,你不能访问网站的全局变量。

您可以通过窗口对象或通过不同的存储(如cookie、会话和本地存储(公开任何值。

然后你可以很容易地通过柏树接近它们。

最新更新