我有一个网站,我想用柏树测试它。这个网站正在使用坐标,这些坐标存储在一个全局变量中
我想写一个测试,访问这些坐标并检查它们是否正确。有没有办法用柏树做这个?
我的意思是,有一种方法可以通过控制台访问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、会话和本地存储(公开任何值。
然后你可以很容易地通过柏树接近它们。