Проблема с кликом по кнопке(возможно это баг)

bladder

Пользователь
Регистрация
24.11.2019
Сообщения
68
Благодарностей
3
Баллы
8
В общем есть проблема, которая никак не решается.

В Wordpress при создании записи можно установить ей картинку, а чтобы ее установить нужно открыть окошко, в котором есть кнопка, нажать на которую не получается никакими способами.
Вот что я перепробовал:
  1. Через конструктор действий создавал клик в rise, перебрал все атрибуты и их значения которые есть в теге кнопки.
  2. Поиск по изображению кнопки.
  3. Нажатие с помощью эмуляции по координатам.
  4. Все тоже самое что и выше, только с другим браузером.
2-й способ показывает прицел на кнопке и выделение ее, но клика не происходит
3-й в zenopostere 7 показывает курсор и анимацию клика, но сам клик не происходит и кнопка не срабатывает.

Не знаю что делать, каким макаром еще можно на нее нажать.
пароль/логин в шаблоне
 

Вложения

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
В таких случаях, надо кликать через Emulator.
 
  • Спасибо
Реакции: bladder

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Конечно, идея заполнять статью в брузере не самая хорошая (куда правильнее работать либо без браузера, либо через API либо RPC или ещё что-то придумать).
Но, если всё таки дело в браузере - вот код, который отлично кликает по нужным кнопкам и выбирает файл temp.png для загрузки, который лежит рядом с Вашим шаблоном.
Код:
instance.ActiveTab.FindElementByAttribute("button", "class", "components-button\\ editor-post-featured-image__toggle", "regexp", 0).Click();
System.Threading.Thread.Sleep(2 * 1000);
instance.SetFileUploadPolicy("ok", "");
instance.SetFilesForUpload(Path.Combine(project.Directory, "temp.png"));
instance.ActiveTab.FindElementById("__wp-uploader-id-4").Click();
 
  • Спасибо
Реакции: bladder

bladder

Пользователь
Регистрация
24.11.2019
Сообщения
68
Благодарностей
3
Баллы
8
В таких случаях, надо кликать через Emulator.
Просто эмуляции мыши по координатам я пробовал и это не помогает, а с кодами делать я пока еще не очень умею.

Конечно, идея заполнять статью в брузере не самая хорошая (куда правильнее работать либо без браузера, либо через API либо RPC или ещё что-то придумать).
Но, если всё таки дело в браузере - вот код, который отлично кликает по нужным кнопкам и выбирает файл temp.png для загрузки, который лежит рядом с Вашим шаблоном.
Код:
instance.ActiveTab.FindElementByAttribute("button", "class", "components-button\\ editor-post-featured-image__toggle", "regexp", 0).Click();
System.Threading.Thread.Sleep(2 * 1000);
instance.SetFileUploadPolicy("ok", "");
instance.SetFilesForUpload(Path.Combine(project.Directory, "temp.png"));
instance.ActiveTab.FindElementById("__wp-uploader-id-4").Click();
Спасибо. А почему встроенными способоами, без C# кода это нельзя сделать? Это баг получается?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Просто эмуляции мыши по координатам я пробовал и это не помогает, а с кодами делать я пока еще не очень умею.


Спасибо. А почему встроенными способоами, без C# кода это нельзя сделать? Это баг получается?
глянул еще разок шаблон твой. в общем сайт очень не простой, клики походу обрабатываются скриптами. что бы добиться срабатывания надо применять метод полной эмуляции мыши.
и структура элементов тоже не располагает к простому поиску через конструктор. как минимум надо делать связку из 2-х элементов.
все это ведет к коду c# и к xpath.

как выше написали если все таки делать через браузер, то тебе надо изучить как строить xpath, подтянуть минимальные знания по c# , это кстати можно сделать и при разборе простых примеров на c#
потом освоить метод полной эмуляции мыши. на форуме есть снипеты для работы с мышкой, только xpath правильный надо проставить.
вот простенький пример движения мышки по xpath. начни с него и постепенно усложняй.

хорошая статья по xpath тык
немного про эмуляцию тык
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: bladder

bladder

Пользователь
Регистрация
24.11.2019
Сообщения
68
Благодарностей
3
Баллы
8
глянул еще разок шаблон твой. в общем сайт очень не простой, клики походу обрабатываются скриптами. что бы добиться срабатывания надо применять метод полной эмуляции мыши.
и структура элементов тоже не располагает к простому поиску через конструктор. как минимум надо делать связку из 2-х элементов.
все это ведет к коду c# и к xpath.

как выше написали если все таки делать через браузер, то тебе надо изучить как строить xpath, подтянуть минимальные знания по c# , это кстати можно сделать и при разборе простых примеров на c#
потом освоить метод полной эмуляции мыши. на форуме есть снипеты для работы с мышкой, только xpath правильный надо проставить.
вот простенький пример движения мышки по xpath. начни с него и постепенно усложняй.

хорошая статья по xpath тык
немного про эмуляцию тык
Спасибо, попробую разобраться.

А можно ли силами зенопостера заполнять таблицы mysql прям из шаблона зенопостера?
 

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113
Можно, зенно работает с бд
 
  • Спасибо
Реакции: bladder

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Спасибо. А почему встроенными способоами, без C# кода это нельзя сделать? Это баг получается?
В 7-ке есть полная эмуляция мыши. Если не ошибаюсь, она через Emulator. Попробуйте её.
 
  • Спасибо
Реакции: bladder

bladder

Пользователь
Регистрация
24.11.2019
Сообщения
68
Благодарностей
3
Баллы
8
Конечно, идея заполнять статью в брузере не самая хорошая (куда правильнее работать либо без браузера, либо через API либо RPC или ещё что-то придумать).
Но, если всё таки дело в браузере - вот код, который отлично кликает по нужным кнопкам и выбирает файл temp.png для загрузки, который лежит рядом с Вашим шаблоном.
Код:
instance.ActiveTab.FindElementByAttribute("button", "class", "components-button\\ editor-post-featured-image__toggle", "regexp", 0).Click();
System.Threading.Thread.Sleep(2 * 1000);
instance.SetFileUploadPolicy("ok", "");
instance.SetFilesForUpload(Path.Combine(project.Directory, "temp.png"));
instance.ActiveTab.FindElementById("__wp-uploader-id-4").Click();
Если этот код использовать в цикле, то он почему-то загружает 2 фотоки, сначала старую(еще раз), а потом новую.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113

bladder

Пользователь
Регистрация
24.11.2019
Сообщения
68
Благодарностей
3
Баллы
8
В 1 и 5-ой строке 2 клика.
Да, я удалил эту строку, но он опять не так работает.

Вот мой код:
C#:
instance.ActiveTab.FindElementByAttribute("button", "class", "browser button button-hero", "regexp", 0).Click();
System.Threading.Thread.Sleep(5 * 1000);
instance.SetFilesForUpload(project.Variables["wp_tab_c"].Value);
Ссылка на фотографию берся из переменной "wp_tab_c" . В переменной при проходе в цикле каждый раз новая ссылка, но код игнорит то что лежит в переменной "wp_tab_c" и 1 раз повторно грузит прошлую фотку, которая была в этой переменной при прошлом проходе по циклу. Можно ли это исправить?
 

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