Advertisement
Guest User

Appium TikTok

a guest
Feb 20th, 2020
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. import io.appium.java_client.MobileElement;
  2. import io.appium.java_client.TouchAction;
  3. import io.appium.java_client.android.AndroidDriver;
  4. import io.appium.java_client.android.AndroidElement;
  5. import io.appium.java_client.remote.MobileCapabilityType;
  6. import io.appium.java_client.touch.offset.PointOption;
  7. import org.openqa.selenium.remote.DesiredCapabilities;
  8.  
  9. import java.net.MalformedURLException;
  10. import java.net.URL;
  11. import java.util.Random;
  12. import java.util.concurrent.TimeUnit;
  13.  
  14. /*
  15. Software necessário:
  16. - Android Studio (para o Android SDK)
  17. - Um IDE de Java (Intellij IDEA, por exemplo)
  18. - Emulador Android (que funcione bem com ADB, genymotion for personal use é uma boa opção)
  19. - Appium Desktop
  20.  
  21. Vídeos de referência:
  22. - https://www.youtube.com/watch?v=Qxts1w8uR1M
  23. -https://www.youtube.com/watch?v=i1tQ1pjEFWw
  24. */
  25.  
  26. public class tiktoktest {
  27.  
  28. public static void delay(int start, int end) throws InterruptedException {
  29. Random rand = new Random();
  30. TimeUnit.SECONDS.sleep(rand.nextInt(end - start) + start);
  31. }
  32.  
  33. public static void main(String args[]) throws MalformedURLException, InterruptedException {
  34.  
  35. DesiredCapabilities dc = new DesiredCapabilities();
  36. Random rand = new Random();
  37.  
  38. // o que aparece com `adb devices`
  39. dc.setCapability(MobileCapabilityType.DEVICE_NAME, "192.168.56.101:5555");
  40. dc.setCapability("platformName", "android");
  41. // package da app a automatizar
  42. dc.setCapability("appPackage", "com.zhiliaoapp.musically");
  43. // activity da app, fazer adb logcat para um ficheiro e procurar por "for activity"
  44. //dc.setCapability("appActivity", "com.ss.android.ugc.aweme.main.MainActivity");
  45. dc.setCapability("appActivity", "com.ss.android.ugc.aweme.splash.SplashActivity");
  46. // Impedir que o Appium reset a app data e cache a cada automatização
  47. dc.setCapability("noReset", "true");
  48. dc.setCapability("fullReset", "false");
  49.  
  50. AndroidDriver<AndroidElement> driver = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"), dc);
  51.  
  52.  
  53. // Automatizações começam aqui, comecei a usar por coordenadas porque localizar elementos por xpath de vez em quando
  54. delay(5, 7);
  55.  
  56. (new TouchAction(driver)).tap(PointOption.point(318,1693)).perform();
  57.  
  58. delay(4, 7);
  59. (new TouchAction(driver)).tap(PointOption.point(162, 132)).perform();
  60.  
  61. delay(4, 7);
  62. (new TouchAction(driver)).tap(PointOption.point(175, 266)).perform();
  63.  
  64. delay(4, 7);
  65. //(new TouchAction(driver)).tap(117, 920).perform();
  66. (new TouchAction(driver)).tap(PointOption.point(117,920)).perform();
  67.  
  68. delay(4, 7);
  69. (new TouchAction(driver)).tap(PointOption.point(544, 734)).perform();
  70.  
  71. delay(4, 7);
  72. //(new TouchAction(driver)).tap(916, 408).perform();
  73. (new TouchAction(driver)).tap(PointOption.point(916,408)).perform();
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement