How to do conditional browser interactions with in

2020-04-21 02:09发布

With the promised web driver I would like to check if an element exists on the page, then login if it does, otherwise continue with the promise chain.

Is this not possible at the moment due to https://github.com/theintern/intern/issues/14?

标签: intern
1条回答
干净又极端
2楼-- · 2020-04-21 03:11

In Intern 2, simply use the normal find command:

var remote = this.remote;
remote.get(url)
    .findById('foo')
    .then(function (element) {
        // exists
    }, function () {
        // does not exist
    });

In Intern 1, if you need to conditionally branch, you’ll need to stop and add new instructions based on the result of your check.

var remote = this.remote;
remote.get(url)
    .elementByIdIfExists('foo')
    .then(function (element) {
        if (element) {
            remote.clickElement()
                .type('foo');
                // ...etc.
        }
    });

This should work in Intern 1.1 only if you are adding new commands to the remote promise chain when there are no other already-existing commands pending. Intern 1.2 will contain improvements that eliminate this restriction. This is issue #14.

查看更多
登录 后发表回答