Link 在 iframe 中点击 Testcafe 时不工作

Link not working when clicked by Testcafe inside iframe

我正在尝试在我们的演示商店中设置一些简单的验证。 它一直有效,直到单击 "genomför köp"(进行购买)link。 link 标记为已单击(颜色变化),但未执行正确的操作,您留在同一侧。 如果您在 "await t.click('#purchase-button');" 行之后添加调试行,您可以手动单击 link,您可以将鼠标悬停在 link 上,以便 testcafe 找到它。但是由于某些原因,click() 不起作用。

编辑:1:我正在使用的 OS 是 WIn10,运行 testcafe 1.8.2 在 phpstorm 2019.3.3 下并用 "testcafe chrome *.js"

调用它

如有任何帮助,我们将不胜感激。 /克里斯托弗

相关代码如下,demoshop开放使用

fixture`demoshop.resurs.com`
    .page(https://demoshop.resurs.com);


test(
    'Run: demoshop.resurs.com', async t => {
        await t
            .click('.home-shop-now')
            .click('#root > div > main > div > div.container > div.products-container.mb-60 > div:nth-child(1) > a > img')
            .click('#root > div > main > div > div > div.product-detail__container > div.product-detail__info-container > div.product-detail__add-to-cart > div > button')
            .click('#root > div > main > div > span > header > div > div > div > span.shopping-bag-icon.clickable > div')
            .click('#root > div > main > div > span > div > div > div > div.shopping-cart-container > a');

        await t.switchToIframe('iframe');

        await t.click('#purchase-button');  //This does not work properly

        await t.expect(Selector('h2').innerText).contains('Tack för din order!');


    }
);

我能够通过 TestCafe@1.8.2 重现该问题,但测试在 TestCafe@1.8.4 中按预期工作。

我建议您更新到最新的 TestCafe 版本并应用@DmitryOstashev 提供的更改:

import { Selector } from 'testcafe';

fixture`demoshop.resurs.com`
    .page('https://demoshop.resurs.com');


test(
    'Run: demoshop.resurs.com', async t => {
        await t
            .click('.home-shop-now')
            .click('#root > div > main > div > div.container > div.products-container.mb-60 > div:nth-child(1) > a > img')
            .click('#root > div > main > div > div > div.product-detail__container > div.product-detail__info-container > div.product-detail__add-to-cart > div > button')
            .click('#root > div > main > div > span > header > div > div > div > span.shopping-bag-icon.clickable > div')
            .click('#root > div > main > div > span > div > div > div > div.shopping-cart-container > a');

        await t.switchToIframe('iframe');

        await t.click('#purchase-button');

        await t.switchToMainWindow();

        await t.expect(Selector('h2').innerText).contains('Tack för din order!');
    }
);