Skip to content

Instantly share code, notes, and snippets.

@pertamaks
Last active July 31, 2019 05:23
Show Gist options
  • Save pertamaks/4cb1a7dca7d38ded712ba086a31fb191 to your computer and use it in GitHub Desktop.
Save pertamaks/4cb1a7dca7d38ded712ba086a31fb191 to your computer and use it in GitHub Desktop.
Opo ya, semacam environment webdriver python buat appium kali ya, **Prereq: Appium, Selenium**
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec
from selenium.common.exceptions import NoSuchElementException
class Apiyum(object):
__TIMEOUT = 10
def __init__(self, driver):
super().__init__()
self.web_driver_wait = WebDriverWait(driver, Apiyum.__TIMEOUT)
self.web_driver = driver
def find_id(self, idnya):
return self.web_driver_wait.until(
ec.visibility_of_element_located((By.ID, idnya)))
def find_name(self, text):
return self.web_driver_wait.until(
ec.visibility_of_element_located((By.NAME, text)))
def find_text(self, cari):
des = self.web_driver.find_elements_by_class_name('android.widget.TextView')
for t in des:
if t.text == cari:
return t
def find_text_idx(self, cari, idx=0):
des = self.web_driver.find_elements_by_class_name('android.widget.TextView')
lst = [i for i, x in enumerate(des) if x.text == cari]
try:
return des[lst[idx]]
except IndexError:
print('Element Not Found')
def confirm_id(self, idnya):
try:
return self.web_driver.find_element_by_id(idnya).is_displayed()
except NoSuchElementException:
print(False)
def confirm_name(self, nama):
try:
return self.web_driver.find_element_by_name(nama).is_displayed()
except NoSuchElementException:
print(False)
def confirm_xpath(self, xpath):
try:
return self.web_driver.find_element_by_xpath(xpath).is_displayed()
except NoSuchElementException:
print(False)
def confirm_text(self, cari):
try:
des = self.web_driver.find_elements_by_class_name('android.widget.TextView')
for t in des:
if t.text == cari:
return t.is_displayed()
except NoSuchElementError:
print(False)
def confirm_text_idx(self, cari, idx=0):
try:
des = self.web_driver.find_elements_by_class_name('android.widget.TextView')
lst = [i for i, x in enumerate(des) if x.text == cari]
return des[lst[idx]]
except IndexError:
print(False)
def swipes(self, x1, y1, x2, y2):
self.web_driver.swipe(x1, y1, x2, y2, duration=800)
def swipe_to(self, text, idx=0, x1=500, y1=1600, x2=500, y2=200):
prev_screen = self.web_driver.page_source
curr_screen = ''
while not self.find_text(text) or curr_screen == prev_screen:
self.swipes(x1, y1, x2, y2)
curr_screen = prev_screen
prev_screen = self.web_driver.page_source
return self.find_text(text)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment