Я ищу решение или, по крайней мере, руководство о том, как динамически находить элементы на панели инструментов, а затем обновлять содержимое внутри Hashmap.Я пишу в javascript - шутка - кошмар.На сегодняшний день я фактически обновил все элементы в карте, а затем запустил цикл (forEach) и искал их на экране, используя существующий метод.Как я уже говорил, я ищу более эффективный способ, например, запуск на экране и поиск элементов, а затем я хочу вставить их в Hashmap.Вот пример, который я делаю сегодня:
describe('Elements visibility', () => {
let visibleSelector = {
'username': '[name = "username"]',
'password': '[name = "password"]',
'forgotPassword': 'a[href="div.forgotPassword"]',
'signUp': 'a[href="div.newUserText"]'
};
let selectorInputs = Object.keys(visibleSelector);
selectorInputs.forEach(selector =>{
it(format('Elements visibility: %s',selector), (done) => {
nightmare.exists( visibleSelector[selector]).then(function (elementExists) {
if (elementExists){
console.log('Element exists on page');
}
else {
console.log('Element doesnt exists on page')
}
});
done();
});
});
});
После поиска я нашел метод document.queryselectAll, который решает проблему поиска элементов на странице.В любом случае, после нескольких попыток я так и не смог получить то, что хотел.когда я печатаю в console.log (document), я получаю документ, который не определен.Я думаю, это связано с электроном nightmar.js.Я был бы счастлив с кем-то, кто может помочь мне с этим вопросом.Я прилагаю новый код, который я написал:
describe('overviews', () => {
beforeEach( (done) => {
nightmare.goto('https://dashboard-staging.pixoneye.com/#/login');
nightmare.exists('[text="See the Full Picture"]');
nightmare.url().then(url => {
expect(url).toEqual('https://dashboard-staging.pixoneye.com/#/login');
done();
});
});
afterAll((done) =>{
nightmare.end();
done();
});
describe('test', function() {
console.log(document);
let pageElements = [].slice.call(document.querySelectorAll('.loginForm'));
for (let i = 0; i < pageElements.length; i++) {
it('should ', (done) => {
let elementInputs = pageElements[i];
nightmare.exists(elementInputs);
console.log(elementInputs);
done();
});
}
});
});