Клик по элементу из кубика свой JS

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
Возможно ли? Если да то как?
Пробовал таким кодом, что то не выходит.


Код:
$(document).on("click","#selectlang",function() {
    $(this).click();
});

и

$("#selectlang").click();

и

document.getElementById('selectlang').click();
 

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
Блин можно я просто не тот селектор для клика указывал)
Закройте плз.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 857
Баллы
113
Первый вариант в корне не верный, ты навешиваешь событие им
 

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28

izunag

Пользователь
Регистрация
23.08.2017
Сообщения
125
Благодарностей
25
Баллы
18
Почему то document.getElementById('#Pager1 > ul > li:last-child > a').click(); работает,
а $('#Pager1 > ul > li:last-child > a').click() не работает (((
По возможности меньше пользуйся библиотеками. Пиши на чистом JS. Как по мне быстрее и надёжнее.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 857
Баллы
113
Почему то document.getElementById('#Pager1 > ul > li:last-child > a').click(); работает,
а $('#Pager1 > ul > li:last-child > a').click() не работает (((
А это тут при чем? Ты обработчик первым действием делаешь, а не клик
 

izunag

Пользователь
Регистрация
23.08.2017
Сообщения
125
Благодарностей
25
Баллы
18
А это тут при чем? Ты обработчик первым действием делаешь, а не клик
я вообще порекомендовал без относительно к коду, цитату сделал чтобы заметил обновление поста.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 857
Баллы
113

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
А как сделать такое?
Хочу пропарсить страницу с пагинацией.
1. Я взял все нужные элементы со страницы.
2. Кликом нажал на самую правую стрелку пагинации.
3. Как через свой JS дождаться пока страница полностью прогрузится чтобы сделать заново 1 и 2 шаги пока не дойду до конца? Юзать jquery ready?
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 857
Баллы
113
3. Как через свой JS дождаться пока страница полностью прогрузится чтобы сделать заново 1 и 2 шаги пока не дойду до конца? Юзать jquery ready?
чекать присутствие/видимость прелоадера
 

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
И я не понимаю в какой момент времени кубик свой JS код начинает выполняться на странице.
В обычном браузере при обновлении страницы или переходе, JS весь заново начинает исполняться.
В зеннопостере я так понимаю он исполняется 1 раз? Тогда как мне получать статус страница реади или не реади чтобы управлять виртуальным браузером из одного кубика?
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 857
Баллы
113
И я не понимаю в какой момент времени кубик свой JS код начинает выполняться на странице.
В обычном браузере при обновлении страницы или переходе, JS весь заново начинает исполняться.
В зеннопостере я так понимаю он исполняется 1 раз? Тогда как мне получать статус страница реади или не реади чтобы управлять виртуальным браузером из одного кубика?
В какой момент поставишь его выполняться - в такой и будет, там есть настройки выполнения (при загрузке страницы и тд).

А как уж управлять - тут строй свою логику на таймаутах и интервалах, тыж шаришь в JS )
 

izunag

Пользователь
Регистрация
23.08.2017
Сообщения
125
Благодарностей
25
Баллы
18
Код:
var tab = instance.ActiveTab;
if ((tab.IsVoid) || (tab.IsNull)) {
    return -1;
}
System.Threading.Thread.Sleep(50);
if (tab.IsBusy) tab.WaitDownloading();

do {

var parsing_data = tab.MainDocument.EvaluateScript(@"
  // код парсинга
   return value;
");

var next = tab.MainDocument.EvaluateScript(@"
el = document.querySelector('#nav a.next'); //ссылка на след страницу
return (el) ? 'true' : 'false';
");

if (next == "true") tab.MainDocument.EvaluateScript(@"
  document.querySelector('#nav a.next').click(); //кликаем по ссылке
");

System.Threading.Thread.Sleep(50); //ждем пока обновится страница
if (tab.IsBusy) tab.WaitDownloading();

} while (next == "true") ; проверяем была ли станица последней
 

izunag

Пользователь
Регистрация
23.08.2017
Сообщения
125
Благодарностей
25
Баллы
18
project.Variables["myvar"].Value = tab.MainDocument.EvaluateScript(@"
//js код здесь
return value; //если что-то нужно вернуть
");

кавычки внутри кода удвоить ""текст"" или использовать одиночные 'текст'

аналог блока свой JS код
 

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
.Thread.Sleep(50); Что то не хорошо.
Может есть какой нибудь метод instance.TabReady???
 

izunag

Пользователь
Регистрация
23.08.2017
Сообщения
125
Благодарностей
25
Баллы
18
.Thread.Sleep(50); Что то не хорошо.
Может есть какой нибудь метод instance.TabReady???

так а это что ?

System.Threading.Thread.Sleep(50);
if (tab.IsBusy) tab.WaitDownloading();

ожидание Thread.Sleep(50); добавлено специально. потому что бывает не срабатывает
if (tab.IsBusy) tab.WaitDownloading();

то есть браузер еще не начал обновлять страницу а C# уже проверил

можешь попробовать убрать ожидание или уменьшить время до 10
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)