在URL为空的新窗口中,如何提供查找相关资源的路径?
这个问题开始于对一个功能丰富的公共网站进行的Robot Framework测试。作为测试生成的数据的一部分,我想要捕捉屏幕截图。使用JavaScript数据源将整个报告格式化为HTML。因此RF将数据放入.JS文件,然后HTML读取数据。
我对图像有问题。他们没有出现在弹出窗口报告中,我不知道为什么。
从RF导出的路径是相对的,它们在报告的主页中工作得很好,但在弹出窗口中不是这样。 问题似乎在于空白弹出窗口没有从中搜索资源的窗口位置。我甚至运行了一个快速实验,显示无法从弹出窗口(右)访问主窗口(左)的整个路径。多亏了关于绝对副相对路径的注释,我更新了RF代码以输出绝对路径。现在我的代码达到了我想要的效果,但是我还剩下一个关于空白窗口和路径的问题。
我可以使图像工作,但是我还有样式表和javascript文件,我也想引用它们。现在我把所有的东西都逐行写出来,这似乎有点过分。当然,有一种方法可以为新窗口设置路径,该路径可以用作相对资源的起点。
解决方案
我看到IMG被指定了要使用的相对URL(正如它们应该使用的那样)。我不是百分之百肯定window.open的基本URL是什么。我不知道它是否是关于:空白,但是由于绝对URL起作用而相对URL不起作用,我认为可以肯定浏览器不知道指向哪里。
因此添加一个元素以显式地告诉它指向何处。以下是文档:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
我假设您正在使用js将元素写入窗口,因此在这种情况下,您将需要创建基本元素,将其追加到头部,并将base.href设置为您正在使用的基本url。
我认为,如果不使用window.open(在弹出窗口不好的时候很受欢迎),而使用一个隐藏的模式div,您可以将HTML加载(或写入)到其中,然后取消隐藏,这样做可以省去一些麻烦。但是,您使用弹出窗口可能有完全有效的理由。
相关文章