Доступ к элементам на электронном веб-просмотре с использованием спектра
Я пытаюсь автоматизировать электронное приложение, которое загружает его содержимое в веб-просмотр. Я использую 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));
});
});
приведенный выше код, чтобы убедиться, что дескриптор окна веб-просмотра является правильным. И это. Пожалуйста, помогите. Спасибо
1 ответ
Решение
Я проверил код, используя Spectron и запустив WebView внутри, имитируя это поведение, ваш код работает нормально. Переписали коды. Надеюсь это поможет.
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));
});
});
или же
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));;
});