Доступ к элементам в электронном веб-просмотре с использованием спектрона

Я пытаюсь автоматизировать электронное приложение, которое загружает свой контент в веб-просмотр. Я использую Spectron и WebDriverio для этого.

вот код, который я использую.

it('should assess webview', function() {
    var self = this;
    return this.app.client.waitUntilWindowLoaded()
        .windowHandles().then(function(session) {
            self.app.client.switchTab(session.value[1])
            .click("#my-id")
            .then(console.log.bind(console))
            .catch(console.log.bind(console));
        });
});

Это не работает. я не уверен, где я иду не так. Но я использовал

it('should assess webview', function() {
    var self = this;
    return this.app.client.waitUntilWindowLoaded()
        .windowHandles().then(function(session) {
            self.app.client.switchTab(session.value[1])
            .getSource()
            .then(console.log.bind(console))
            .catch(console.log.bind(console));
        });
});

приведенный выше код, чтобы убедиться, что дескриптор окна веб-просмотра правильный. И это. Пожалуйста, помогите. Спасибо


person Sathya Balaji    schedule 10.05.2016    source источник


Ответы (1)


Я проверил код, используя спектрон и запустив веб-просмотр внутри, имитируя это поведение, ваш код работает нормально. Переписал коды. Надеюсь это поможет.

it('should assess webview', function() {
    var self = this;
    return this.app.client.waitUntilWindowLoaded()
        .windowHandles().then(function(session) {
            // Need to return the promise back, if promise is
            // it would wait for the state or else app will exit.
            return self.app.client.switchTab(session.value[1])
            .click("#my-id") // check whether selector is present in DOM
            .then(console.log.bind(console))
            .catch(console.log.bind(console));
        });
});

or

it('should assess webview', function() {
    var self = this;
    return this.app.client.waitUntilWindowLoaded()
        .windowHandles()
        .then(function(session) {
            // switchTab & window will both focus
            // window or tab which is active
            return this.window(session.value[1])
        })
        .click("#my-id") // check whether selector is present in DOM
        .then(console.log.bind(console))
        .catch(console.log.bind(console));;
});
person Kamesh    schedule 10.05.2016
comment
Спасибо @kamesh, я проверю. - person Sathya Balaji; 11.05.2016