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

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

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2015, 15:28   #1
Rybis
Пользователь
 
Регистрация: 11.07.2015
Сообщений: 17
Восклицание Qt QWebView нажать на кнопку сайта

Нужно кликнуть по кнопке на сайте,Без Post/Get запросов
Пробовал так

QWebElement arrr;
arrr = ui.webView->page()->mainFrame()->findFirstElement("btnI");
arrr.evaluateJavaScript("this.click ();");
И так

QWebElementCollection Arr = ui.webView->page()->mainFrame()->findAllElements("div.class-name");
Arr.evaluateJavaScript("this.click( );");
И так

ui.webView->page()->mainFrame()->evaluateJavaScript("document.getEl ementsById('search-btn').click();");

Но не робит
Rybis вне форума Ответить с цитированием
Старый 21.09.2015, 20:21   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Код:
document.getEl ementsById('search-btn').click()
Нажмите F12 в любом браузере и попробуйте это выполнить.
Нет функции getElementsById, есть только getElementById. (а те функции, что про elements, возвращают массив и у массива тоже нет функции click)

И во втором на div click тоже вряд ли сработает, тем более что там ж тоже коллекция, а не один.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 21.09.2015 в 21:05.
Alex11223 вне форума Ответить с цитированием
Старый 22.09.2015, 15:05   #3
Rybis
Пользователь
 
Регистрация: 11.07.2015
Сообщений: 17
По умолчанию

Можете дать джаваскрипт код клика по кнопке,или какие еще есть варианты нажать на нее? У меня компонент QWebView, но нажать нужно без GET/POST
Rybis вне форума Ответить с цитированием
Старый 22.09.2015, 15:36   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зависит от сайта.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.09.2015, 15:50   #5
Rybis
Пользователь
 
Регистрация: 11.07.2015
Сообщений: 17
По умолчанию

Ну например яндекс или гугл нажать на поиск
Rybis вне форума Ответить с цитированием
Старый 22.09.2015, 16:33   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Гугл:
Код:
document.getElementsByName('btnG')[0].click()
Яндекс (XPath потому что нету id/name. По идее в QWebView можно и его силами найти, но я не работал с ним, только Selenium):
Код:
document.evaluate("//div[contains(@class, 'search')]/button", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click()
Еще вариант (первые два работают на кнопках input или button, но если там не настоящая кнопка, а div, img и т.п., то может и не работать):
Код:
function fireClickEvent(obj){	
    var fireOnThis = obj;
    var evObj = document.createEvent('MouseEvents');
    evObj.initEvent( 'click', true, false );
    fireOnThis.dispatchEvent(evObj);
}
fireClickEvent(document.getElementsByName('btnG')[0])
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.09.2015, 16:55   #7
Rybis
Пользователь
 
Регистрация: 11.07.2015
Сообщений: 17
По умолчанию

Оо спасибо,но вот вопрос я через хром -просмотр код элемента- у меня имя кнопки btnK как ты нашел btnG?
Rybis вне форума Ответить с цитированием
Старый 22.09.2015, 17:03   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

У меня btnG, может быть меняет гугл время от времени. Или гугл не совсем тот.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.09.2015, 17:10   #9
Rybis
Пользователь
 
Регистрация: 11.07.2015
Сообщений: 17
По умолчанию

Дело в том что по btnG кликает, а по btnK нет
Изображения
Тип файла: jpg Безымянный.jpg (23.6 Кб, 152 просмотров)
Rybis вне форума Ответить с цитированием
Старый 22.09.2015, 17:15   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык оно и руками не кликает при пустом поле ввода. btnG после ввода.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TChromium CEF3 Как при закрытии страницы сайта нажать кнопку в окне "Покинуть страницу" _Casper_ Общие вопросы Delphi 3 01.09.2015 11:36
Нажать на кнопку сайта Rybis Общие вопросы C/C++ 11 03.08.2015 21:15
Нажать кнопку scroyler Работа с сетью в Delphi 6 24.03.2013 19:05
Нажать кнопку Dron_kss Работа с сетью в Delphi 1 28.03.2009 17:33
Нажать кнопку Teen4jump Работа с сетью в Delphi 11 29.02.2008 08:33