Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2016, 10:15   #1
Unnika
Пользователь
 
Регистрация: 31.03.2016
Сообщений: 59
По умолчанию click all id c# js

как кликнуть на сайте по всем id javascript'a ?
Unnika вне форума Ответить с цитированием
Старый 12.04.2016, 10:31   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут id, это просто один из способов поиска элементов (если в его коде есть атрибут id).

Ну а если действительно надо найти все элементы с любым id, то так:
Код:
document.evaluate("//*[@id]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null)
+ цикл с помощью snapshotLength и snapshotItem

Вывод их всех в консоль браузера:
Код:
var elements = document.evaluate("//*[@id]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < elements.snapshotLength; i++) {
    console.log(elements.snapshotItem(i));
}
но элементы внутри ифреймов вряд ли так найдет.
Для работы с фреймами в Awesomium надо сначала найти фрейм в основном окне, а потом уже с ним работать.
https://www.google.com/search?q=awesomium+iframe
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.04.2016, 10:44   #3
Unnika
Пользователь
 
Регистрация: 31.03.2016
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Причем тут id, это просто один из способов поиска элементов (если в его коде есть атрибут id).

Ну а если действительно надо найти все элементы с любым id, то так:
Код:
document.evaluate("//*[@id]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null)
это подходит , а как теперь совершить клик?
Код:
document.evaluate("//*[@id]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null, "click")
?
Unnika вне форума Ответить с цитированием
Старый 12.04.2016, 10:49   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Если чисто на JS, то
Код:
function fireEvent(element,event) {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent(event, true, false ); // event type,bubbling,cancelable
    element.dispatchEvent(evt);                                 
}

var elements = document.evaluate("//*[@id]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < elements.snapshotLength; i++) {
    fireEvent(elements.snapshotItem(i), 'click');
}
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.04.2016, 10:54   #5
Unnika
Пользователь
 
Регистрация: 31.03.2016
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
нужно на c# (
Unnika вне форума Ответить с цитированием
Старый 12.04.2016, 11:01   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну запустите сначала в консоли браузера (F12), чтобы понять, что это скорее всего не то, что нужно
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.04.2016, 11:13   #7
Unnika
Пользователь
 
Регистрация: 31.03.2016
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение

Вывод их всех в консоль браузера:
Код:
var elements = document.evaluate("//*[@id]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < elements.snapshotLength; i++) {
    console.log(elements.snapshotItem(i));
}
вот это то что нужно)) оно работает))

и как теперь это в c# воткнуть о_О

Код:
function fireEvent(element,event) {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent(event, true, false ); // event type,bubbling,cancelable
    element.dispatchEvent(evt);                                 
}

var elements = document.evaluate("//*[@id]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < elements.snapshotLength; i++) {
    fireEvent(elements.snapshotItem(i), 'click');
}
а это еще круче работает , он сразу все нажимает и выполняет

в общем
Код:
var elements = document.evaluate("//*[@id]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < elements.snapshotLength; i++) {
    console.log(elements.snapshotItem(i));
}
этот код выводит все id которые есть на сайте , и соответственно iframe
Код:
function fireEvent(element,event) {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent(event, true, false ); // event type,bubbling,cancelable
    element.dispatchEvent(evt);                                 
}

var elements = document.evaluate("//*[@id]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < elements.snapshotLength; i++) {
    fireEvent(elements.snapshotItem(i), 'click');
}
этот код кликает по именно по id . Но сюда же можно дописать чтобы клик был по iframe то

Последний раз редактировалось Alex11223; 12.04.2016 в 12:01.
Unnika вне форума Ответить с цитированием
Старый 12.04.2016, 12:00   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык если нужен только iframe, то его id и используйте, а не все подряд.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 12.04.2016, 12:20   #9
Unnika
Пользователь
 
Регистрация: 31.03.2016
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Дык если нужен только iframe, то его id и используйте, а не все подряд.
Код:
function fireEvent(element,event) {
    var evt = document.createEvent('HTMLEvents');
    evt.initEvent(event, true, false ); // event type,bubbling,cancelable
    element.dispatchEvent(evt);                                 
}

var elements = document.evaluate("//*[@id]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < elements.snapshotLength; i++) {
    fireEvent(elements.snapshotItem(i), 'click');
Как этот код в c# воткнуть?
Unnika вне форума Ответить с цитированием
Старый 12.04.2016, 13:17   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

webControl.ExecuteJavascript и https://msdn.microsoft.com/en-us/lib....aspx#Anchor_3
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
click в Listbox olga93 Microsoft Office Excel 8 24.09.2013 16:56
right click menu tyrus2 Microsoft Office Word 1 18.04.2010 16:27
Click Shot Alex Cones Софт 9 18.04.2010 10:31
Click to color L.Morgan Общие вопросы Delphi 11 25.01.2009 19:21
StringGrid right click Fox Компоненты Delphi 9 06.02.2007 12:14