测试咖啡馆关闭 window
Testcafe close window
我有这个简单的页面,可以打开一个新的 window。
<html>
<body>
<button id="open">Open window</button>
</body>
<script>
var windowObjectReference;
function openRequestedPopup() {
windowObjectReference = window.open("http://www.cnn.com/", "CNN");
}
document.querySelector("#open").addEventListener("click", openRequestedPopup);
</script>
</html>
我也有这个测试:
import {Selector} from 'testcafe';
fixture `Close window`
.page('http://127.0.0.1:8080/');
test('Close window', async t => {
await t.click("#open");
await t.switchToWindow(f => f.url.host==="www.cnn.com").closeWindow();
});
尝试根据谓词查找 window 时,测试失败
PS C:\work\New folder> testcafe edge .\test.js
Running tests in:
- Microsoft Edge 96.0.1054.43 / Windows 10
Example page
× Close the current window
1) Cannot find the window specified in the action parameters.
Browser: Microsoft Edge 96.0.1054.43 / Windows 10
1/1 failed (5s)
我无法理解我应该怎么做才能获得从 js 代码打开的 window。
如何获取 window 并检查其中的一些元素?
我们已解决与“多浏览器 windows”模式相关的问题。请安装当前的 alpha 版本 (npm i testcafe@alpha
/ npm i testcafe@1.17.2-alpha.2
)。此外,您需要修复谓词的 host
值。这个CNN页面的实际主机名是edition.cnn.com
(你可以在没有TestCafe的情况下通过观察浏览器控制台中的window.location.hostname
属性来检查它):
await t.switchToWindow(f => f.url.host === 'edition.cnn.com').closeWindow();
或者,您可以使用 t.getCurrentWindow
代替谓词:
await t.click("#open");
const cnnWindow = await t.getCurrentWindow();
await t.closeWindow(cnnWindow);
我有这个简单的页面,可以打开一个新的 window。
<html>
<body>
<button id="open">Open window</button>
</body>
<script>
var windowObjectReference;
function openRequestedPopup() {
windowObjectReference = window.open("http://www.cnn.com/", "CNN");
}
document.querySelector("#open").addEventListener("click", openRequestedPopup);
</script>
</html>
我也有这个测试:
import {Selector} from 'testcafe';
fixture `Close window`
.page('http://127.0.0.1:8080/');
test('Close window', async t => {
await t.click("#open");
await t.switchToWindow(f => f.url.host==="www.cnn.com").closeWindow();
});
尝试根据谓词查找 window 时,测试失败
PS C:\work\New folder> testcafe edge .\test.js
Running tests in:
- Microsoft Edge 96.0.1054.43 / Windows 10
Example page
× Close the current window
1) Cannot find the window specified in the action parameters.
Browser: Microsoft Edge 96.0.1054.43 / Windows 10
1/1 failed (5s)
我无法理解我应该怎么做才能获得从 js 代码打开的 window。
如何获取 window 并检查其中的一些元素?
我们已解决与“多浏览器 windows”模式相关的问题。请安装当前的 alpha 版本 (npm i testcafe@alpha
/ npm i testcafe@1.17.2-alpha.2
)。此外,您需要修复谓词的 host
值。这个CNN页面的实际主机名是edition.cnn.com
(你可以在没有TestCafe的情况下通过观察浏览器控制台中的window.location.hostname
属性来检查它):
await t.switchToWindow(f => f.url.host === 'edition.cnn.com').closeWindow();
或者,您可以使用 t.getCurrentWindow
代替谓词:
await t.click("#open");
const cnnWindow = await t.getCurrentWindow();
await t.closeWindow(cnnWindow);