Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 2
Регистрация: 27.11.2013
Сообщений: 78
1

Nightmare js получить второй div элемент

13.09.2017, 09:54. Показов 954. Ответов 0

Author24 — интернет-сервис помощи студентам
Пробую парсить с помощью Nightmare js старый кабинет Би.лайна
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const Nightmare = require('nightmare');
const dream = Nightmare({show: 'true'});
 
dream.goto('https://my.beeline.ru')
  .insert('input[name="loginFormB2C:loginForm:login"]', '99999999999')
  .insert('input[name="loginFormB2C:loginForm:passwordPwd"]', '0000')
  .insert('input[name="loginFormB2C:loginForm:password"]', '0000')
  .click('a[onclick="togglePasswordField(this)"]')
  .wait(500)
  .click('span[class="ui-button-text ui-c"]')
  .wait(20000)
  .evaluate(() => document.querySelector('div.profile-info').querySelector('.count-prog').innerHTML)
  .end()
  .then(console.log)
  .catch((error) => {
    console.error('Search failed:', error);
  });
При таком коде я получаю:
HTML5
1
2
3
4
<h5>Доступно 20  из&nbsp;20 Гб</h5>
<div class="count-prog-bar active">
        <div style="width: 100%"></div>
</div>
а мне нужно получить и остальные еще два div c querySelector('.count-prog') которые есть на этой же странице (с минутами и смс).
Подскажите как это сделать?
И еще вопрос, как можно переделать скрипт, чтобы не ждать 20 сек пока загрузиться кабинет, а проверять догрузился ли элемент, если, да выполнять evaluate.

P.S. Если пишу querySelectorALL('.count-prog').innerHTML то получаю null.

Добавлено через 18 минут
Если пишу вот так:
Javascript
1
2
3
.evaluate(function(){
       return document.querySelector('div.profile-info').querySelectorAll('h5');    
})
То получаю { '0': {}, '1': {}, '2': {} }
Вроде как все три элемента скрипт находит, но почему в массиве пусто?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2017, 09:54
Ответы с готовыми решениями:

Получить элемент div
Доброе время суток. У меня такая проблема. Мне нужно подредактировать содержимое тега div &lt;div...

Как получить дочерний элемент DIV'а, зная только его id?
Есть . Внутри него с неизвестным уровнем вложенности находится текстовое поле с определенным id....

Показать второй div-sidebar перед первым div-content на CSS
Как в данном примере можно с помощью CSS показать блок сайдбара первым, перед блоком контента, не...

Скрыть один div и вывести второй div
всем привет, уважаемые форумчане! ситуация такая: есть 2 div-а. &lt;div&gt;поиск&lt;/div&gt;...

0
13.09.2017, 09:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.09.2017, 09:54
Помогаю со студенческими работами здесь

Получить массив, состоящий из номеров строк матрицы, в которых второй элемент больше первого вдвое
Дана матрица nxm. Найти количество элементов, лежащих на отрезке (p,q) и их произведение. Получить...

Получить третью матрицу путём умножения элемента каждой строки первой на наибольший элемент второй
Задача. Даны две матрицы N-ого порядка(сиречь двумерные массивы=)), получить третью матрицу...

Скрыть блок первый блок div, если есть второй div
Добрый день! Подскажите пожалуйста, начинаю изучать JavaScript и тут столкнулся с такой задачей....

Не добавляет клон div и как получить все data атрибуты div-а?
userClone = $(&quot;.template_tr tbody&quot;).clone(); //вручную добавляет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru