0

我正在测试的系统是一个网站,它从配置文件和索引页面动态创建页面,这些页面带有可点击的图标。到目前为止,我找不到一种方法来遍历索引页面上的图标并测试所有链接页面。

    it('lets us test all the pages', () =>
    actorCalled('Jasmine').attemptsTo(
        Loop.over(EntryPage.SynthLinks).to(
            Ensure.that(Loop.item<ElementFinder>(), isClickable()),
            Click.on(Loop.item<ElementFinder>()),
            Wait.for(Duration.ofSeconds(10)),
            Log.the(Website.title()),
            //Navigate.back(),
        ),
    ));

到目前为止,此循环有效,它向我显示了 Chrome 中的所有页面,但记录的网站标题始终是索引页面中的标题,因此我无法对点击的页面进行任何测试。(评论Navigate.back()也打破了测试。 ) 我试图从 中读取点击页面的 url Loop.item<ElementFinder>(),所以我可以使用Navigate.To(),但我找不到任何方法。

4

1 回答 1

0

好的,我发现了。罪魁祸首是被测网站,它没有使用href作为链接,而是使用了一些js代码:

[...]
var Subwindows = [];
function openSub(name) {
    var neighbour = window.open(name);
    Subwindows.push(neighbour);
}
[...]
<a onclick="openSub('../SynthPage.html?Mdl=access+virus+b')"><img src="../images/virus.jpg" class="icon" alt="access virus b"></a>

这个想法是记住打开的页面并在完成后关闭它们。所以好的 Chrome 忠实的执行了 js,给我展示了打开的页面(在单独的标签中),但测试的重点仍然是原始页面。我将不得不弄清楚,如何测试那个 || :-)

于 2020-12-16T18:56:06.463 回答