def __login_process(self): driver = self.driver driver.get(game_url) self.__wait(2) start_btn = driver.find_element_by_id("sp_sc_5") TouchActions(driver).tap(start_btn).perform() self.__wait(3) try: login_comfirm = driver.find_element_by_id("sp_sc_5") TouchActions(driver).tap(login_comfirm).perform() self.__wait(2) except: pass while self.__check_notice(): self.__wait(2) while True: if not self.__check_scene('の里'): if not self.__check_notice(): driver.get(home_url) self.__wait(2) else: self.__wait(2) else: break self.__write_log("login")
def __change_food(self): driver = self.driver if not self.__check_scene('の里'): return False firetext = driver.find_element_by_xpath("//span[@id='element_fire']") if int(firetext.text) <= 0: return False try: a = driver.find_element_by_xpath("//area[contains(@title,'楽市楽座')]") TouchActions(driver).tap(a).perform() sleep(1) a = driver.find_element_by_xpath( "//img[contains(@src,'btn_trade_all')]/..") TouchActions(driver).tap(a).perform() sleep(1) btns = driver.find_elements_by_id("neko-alert-dynamic-ok-button") for btn in btns: if btn.is_displayed(): TouchActions(driver).tap(btn).perform() break self.__wait(2) driver.refresh() self.__wait(2) except: return False return True
def test_Level(self): # 测试用例必须以test开头 freeSalePage_url = url3 driver = get_url(freeSalePage_url) page = StudyPlan(driver) chooseStudyInfo(page) # driver.TouchActions.scroll("am-picker-col-mask", 0, +200).perform() element1 = page.am_picker_col_indicator_loc()[0] TouchActions(driver).long_press(element1) TouchActions(driver).flick_element(element1, 0, 300, 30).perform() time.sleep(3) page.study_plan_bt_btn_loc()[0].click() # 选择完年龄点击完成水平测试 time.sleep(5) page.imager_inner_loc()[2].click() # 点击定制专属学习计划 time.sleep(5) page.select_item_loc()[2].click() # 选择期望提升 time.sleep(5) get_sale_page(page) startingLevel = page.study_target_item_content_loc()[0].get_attribute( 'innerHTML') targetingLevel = page.study_target_item_content_loc()[1].get_attribute( 'innerHTML') self.assertEqual(startingLevel, u'Lv.3', msg='失败') # 验证起始等级为lv3 self.assertEqual(targetingLevel, u'Lv.5', msg='失败') # 验证目标等级为lv5
def auto_data_exploration(driver): wait = WebDriverWait(driver, 30) # 1. 进入数据探索界面 entry_li = driver.find_element_by_xpath( '/html/body/div[1]/div/div[2]/ul/li[2]/a') entry_li.click() wait_for(1) # 2. 进行数据探索 wait.until(EC.element_to_be_clickable( (By.XPATH, '//*[@id="exploration"]'))) data_exploration_bt = driver.find_element_by_xpath( '//*[@id="exploration"]') data_exploration_bt.click() wait_for(1) wait.until( EC.visibility_of_element_located( (By.XPATH, '//*[@id="pagecontent"]/ul/li/a'))) df_heart_tab = driver.find_element_by_xpath( '//*[@id="pagecontent"]/ul/li/a') touch_actions = TouchActions(driver) touch_actions.scroll(0, 800).perform() wait_for(1) touch_actions = TouchActions(driver) touch_actions.scroll(0, -400).perform() # 3. 展示每个特征的详细分布比例 """
def scroll_down(driver, y_value=None, times=None): """"Procedure to scroll down a web page for n times or scroll it till its end if <times> is undefined """ if y_value: for _ in range(0, times): # scroll down the browser n times to load <comments number> TouchActions(driver).scroll(0, y_value).perform() time.sleep(SCROLL_PAUSE_TIME) return BeautifulSoup(driver.page_source, features='html5lib') else: # repeating scroll down the window until no more comments are loaded soup = BeautifulSoup(driver.page_source, features='html5lib') while True: all_videos = soup.find_all('a', id='video-title', class_='yt-simple-endpoint style-scope ytd-grid-video-renderer') TouchActions(driver).scroll(0, Y_SCROLL * 10).perform() time.sleep(SCROLL_PAUSE_TIME) soup = BeautifulSoup(driver.page_source, features='html5lib') new_videos = soup.find_all('a', id='video-title', class_='yt-simple-endpoint style-scope ytd-grid-video-renderer') if new_videos == all_videos: driver.close() return new_videos
def click_product_add(self, product): """ if [product] is chicken click chicekn whole off or else if marinades click kola product and add to cart :param product: passing chicken or marinades """ time.sleep(0.5) if product == "chicken": time.sleep(1) self.driver.implicitly_wait(15) wholeoff = self.driver.find_element_by_xpath( '//*[contains(@id,"add-button-CHK_WHL_SKIN_OFF")]') action = TouchActions(self.driver) action.tap(wholeoff).perform() elif product == "marinades": next1 = self.driver.find_element_by_css_selector( '#next-category-button') action = TouchActions(self.driver) action.tap(next1).perform() marinadesicon = self.driver.find_element_by_css_selector( '.category-row > div#category-item-5') action = TouchActions(self.driver) action.tap(marinadesicon).perform() self.driver.implicitly_wait(30) kola = self.driver.find_element_by_css_selector( self.CSS_ADD_BUTTON_MARINADES) action = TouchActions(self.driver) action.tap(kola).perform()
def select_existing_address(self): try: WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located( (By.CSS_SELECTOR, '#deliverable-address-1'))) result = self.driver.find_element_by_id('deliverable-address-1') if result.is_displayed(): WebDriverWait(self.driver, 10).until( EC.visibility_of_element_located( (By.CSS_SELECTOR, '#deliverable-address-1'))) time.sleep(1) address = self.driver.find_element_by_css_selector( self.CSS_ADDRESS_SELECT) action = TouchActions(self.driver) action.tap(address).perform() except: time.sleep(1) self.driver.switch_to.context('NATIVE_APP') self.driver.find_element_by_android_uiautomator( 'new UiSelector().text("Allow")').click() self.driver.switch_to.context('WEBVIEW_com.tendercuts.app') time.sleep(8) WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located( (By.CSS_SELECTOR, '#search-bar'))) bar = self.driver.find_element_by_css_selector('#search-bar') if bar.is_displayed(): self.driver.find_element_by_css_selector('#search-bar').click() address_bar = self.driver.find_element_by_css_selector( 'input.searchbar-input') address_bar.clear() # self.driver.find_element_by_css_selector('.searchbar-clear-icon').click() self.driver.find_element_by_css_selector( '.searchbar-input').send_keys('Tambaram') time.sleep(0.6) option = self.driver.find_element_by_css_selector( '#search-option-item-1') action = TouchActions(self.driver) action.tap(option).perform() WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located( (By.CSS_SELECTOR, '#flat-no > input'))) self.driver.find_element_by_css_selector( '#flat-no > input').send_keys('flatno') WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located( (By.CSS_SELECTOR, '#street > input'))) self.driver.find_element_by_css_selector( '#street > input').send_keys('street') WebDriverWait(self.driver, 5).until( EC.visibility_of_element_located( (By.CSS_SELECTOR, '#add-new-address-submit'))) update = self.driver.find_element_by_css_selector( '#add-new-address-submit') action = TouchActions(self.driver) action.tap(update).perform()
def rate(self): try: rate = self.driver.find_element_by_css_selector( "button.not-now-btn") action = TouchActions(self.driver) action.tap(rate).perform() Chickenimage = self.driver.find_element_by_css_selector( self.CSS_CHICKEN_IMAGE) action = TouchActions(self.driver) action.tap(Chickenimage).perform() except: print("")
def coupon_code(self, coupon): time.sleep(1.5) self.driver.find_element_by_css_selector( self.CSS_COUPONCODE).send_keys(coupon) time.sleep(0.8) apply_button = self.driver.find_element_by_css_selector( self.CSS_COUPONAPPLY) action = TouchActions(self.driver) action.tap(apply_button).perform() time.sleep(0.8) ok_button = self.driver.find_element_by_css_selector(self.CSS_COUPONOK) action = TouchActions(self.driver) action.tap(ok_button).perform()
def test(self): sleep(0.5) self.logger.log("************************************") sleep(0.5) self.logger.log('Contact test initialized', 'yellow') self.logger.log("************************************", 'green') self.appium_worker.entrance_android() self.logger.log("Clicking left sub-menu") self.driver.find_element_by_id("drawer_indicator").click() sleep(1) drawer = self.appium_worker.submenu() if drawer == 2: self.logger.log("Scrolling up the screen") element2 = self.driver.find_element_by_class_name( "android.widget.ListView") touch_actions = TouchActions(self.driver) touch_actions.flick_element(element2, 0, 1000, 100).perform() touch_actions.perform() sleep(1) self.logger.log("Scrolling down") element2 = self.driver.find_element_by_class_name( "android.widget.RelativeLayout") touch_actions = TouchActions(self.driver) touch_actions.flick_element(element2, 0, -1000, 100).perform() touch_actions.perform() sleep(1) self.logger.log("Clicking Contact") self.driver.find_elements_by_class_name( "android.widget.LinearLayout")[16].click() self.appium_worker.bekle_android("tvSupport") m1 = self.driver.find_element_by_id("tvAddress").text m2 = self.driver.find_element_by_id("tvFax").text m3 = self.driver.find_element_by_id("tvPhoneNumber").text m4 = self.driver.find_element_by_id("tvEmail").text self.logger.log("Address: " + m1, 'blue') self.logger.log("Fax: " + m2, 'blue') self.logger.log("Phone: " + m3, 'blue') self.logger.log("Mail: " + m4, 'blue') self.logger.log("Clicking Support button") self.driver.find_element_by_id("tvSupport").click() sleep(2) self.logger.log("Going back") self.driver.back() self.logger.log("Clicking New Message") self.driver.find_element_by_id("tvNewMessage").click() self.logger.log("Going back") self.driver.back() sleep(2) self.driver.back() self.logger.log("TEST FINISHED", "green", 1, 2, self.appium_worker.logger.getFileName())
def select_address(self): """ click select button and click address option1 """ self.driver.implicitly_wait(9) option = self.driver.find_element_by_css_selector( self.CSS_SELECTADDRESS) action = TouchActions(self.driver) action.tap(option).perform() time.sleep(1) address = self.driver.find_element_by_css_selector(self.CSS_ADDRESS) action = TouchActions(self.driver) action.tap(address).perform()
def click_signup_link(self): """ click signup link """ WebDriverWait(self.driver, 100).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'button.login-to-checkout-btn'))) time.sleep(3) login_to_checkout=self.driver.find_element_by_css_selector("button.login-to-checkout-btn") action = TouchActions(self.driver) action.tap(login_to_checkout).perform() WebDriverWait(self.driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.or-img + a'))) option = self.driver.find_element_by_css_selector(self.CSS_SIGNUP) action = TouchActions(self.driver) action.tap(option).perform() time.sleep(1)
def click_edit_name(self): """ to edit the name """ WebDriverWait(self.driver, 10).until( EC.visibility_of_element_located( (By.CSS_SELECTOR, self.CSS_EDITOPTION))) edit = self.driver.find_element_by_css_selector(self.CSS_EDITOPTION) action = TouchActions(self.driver) action.tap(edit).perform() self.driver.find_element_by_css_selector( self.CSS_EDITNAME).send_keys('B') tick = self.driver.find_element_by_css_selector(self.CSS_SAVENAME) action = TouchActions(self.driver) action.tap(tick).perform()
def buy(self, page): driver = self.driver step = 0 while True: if not self.__check_title(): driver.refresh() self.__wait(1) step = 0 if step == 0: if not self.__check_scene("交換所"): driver.get(trade_url) self.__wait(2) else: step = 1 elif step == 1: try: btn = driver.find_element_by_xpath( "//img[@class='search_set_img' and @id='%d']/.." % page) TouchActions(driver).tap(btn).perform() self.__wait(2) step = 2 except: driver.refresh() self.__wait(1) step = 0 elif step == 2: try: if '登用可能な武将がいません' not in driver.page_source: buybtns = driver.find_elements_by_xpath( "//input[@value='登用']") if len(buybtns) > 0: buybtns[0].send_keys(Keys.RETURN) self.__wait(0) btns = driver.find_elements_by_id( "neko-alert-dynamic-ok-button") for btn in btns: if btn.is_displayed(): TouchActions(driver).tap(btn).perform() break self.__wait(2) step = 0 driver.refresh() sleep(1) except: driver.get(trade_url) self.__wait(2) step = 0
def test_contexts_list(self): el = self.driver.find_element_by_class_name('android.widget.ListView') els = el.find_elements_by_class_name('android.widget.TextView') pdb.set_trace() ta = TouchActions(self.driver).flick_element(el, 0, -300, 0) ta.perform() sleep(5)
def login(self, url): # cookies = browser.get_cookies(url=self.login_url, signbot=self.bot) # self.session.cookies.update(cookies) self.session._driver = None if self.is_mobile: self.session.webdriver_options.add_experimental_option("mobileEmulation", mobile_emulation) driver = self.session.driver # 模拟触控操作 # https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html tap_loginbtn = TouchActions(driver) driver.get(url) user_input = driver.find_element_by_id('username') password_input = driver.find_element_by_id('password') login_btn = driver.find_element_by_id('loginBtn') user_input.send_keys(self.bot.user.username) password_input.send_keys(self.bot.user.password) tap_loginbtn.tap(login_btn).perform() time.sleep(6) nickname = driver.find_element_by_css_selector('#myHeader span[class$="name_text"]') nickname = nickname.text self.logger.info('登陆成功,欢迎{}'.format(nickname)) print('登陆成功') else: self.login_pc(url) self.session.transfer_driver_cookies_to_session() self.session.driver.close()
def gohome(self): self.num = 0 id = self.getDevices() self.desired_caps['deviceName'] = id self.desired_caps['udid'] = id self.driver = webdriver.Remote(server, self.desired_caps) # 执行命令等待的时间 self.wait = WebDriverWait(self.driver, 20) self.Action = TouchActions(driver=self.driver) sleep(5) self.wait.until( EC.presence_of_element_located( (By.XPATH, '//*[@text="蚂蚁森林"]'))).click() sleep(5) print(self.driver.page_source) chakanfriend = self.driver.find_element_by_xpath( '//*[@content-desc="查看更多好友"]') print(chakanfriend.size) print(chakanfriend.size['height']) self.swipe_up(0, chakanfriend.size['height']) chakanfriend.click() sleep(5) print(self.driver.page_source) # 保存图片 if self.driver.save_screenshot(TEMP_FILE): rectangle = matchImg(TEMP_FILE, TEMP_FILE_TWO, 0.99) circle_center_pos = rectangle['rectangle'] print(circle_center_pos) self.driver.tap([circle_center_pos[0], circle_center_pos[3]], 100)
def get_comment(self): try: self.fast_click_first_item_same_page_by_partial_link_text(link_text='查看全部') time.sleep(5) button = self.driver.find_element_by_css_selector( css_selector='ul.commit-wrapper-0 > li:nth-child(1)') Action = TouchActions(self.driver) Action.scroll_from_element(on_element=button, xoffset=0, yoffset=int(10000)).perform() Action.scroll_from_element(on_element=button, xoffset=0, yoffset=int(0)).perform() time.sleep(5) self.from_page_get_data_list(page=page_comment_1) except Exception: print("没有评论") time.sleep(5) try: self.fast_click_page_by_css_selector(click_css_selector='li.card.status-return.fold') except Exception as e: print("无元素")
def longtap(self, x, y, time = 5): x = float(x) * self.ratioX y = float(y) * self.ratioY if self.automationName == 'Appium' : TouchAction(self.driver).long_press(None, x, y, time * 1000).perform() else: TouchActions(self.driver).tap_and_hold(x, y).wait(time * 1000).release(x, y).perform()
def slide_code(self): """ 如果触发滑块验证拖动滑块 :return: """ pm = self.modCode() if pm != 0: # 起始位置 pm_button = self.browser.find_element_by_class_name( "vcode-slide-button") # print(pm_button.location, pm_button.size) start_x = int(pm_button.location['x'] + pm_button.size['width'] / 2) start_y = int(pm_button.location['y'] + pm_button.size['height'] / 2) # 目标位置 slide_site = self.browser.find_element_by_class_name( "vcode-slide-bottom") # print(slide_site.location, slide_site.size) left = slide_site.location['x'] top = slide_site.location['y'] right = left + slide_site.size['width'] bottom = top + slide_site.size['height'] end_x = int(right) end_y = int((top + bottom) / 2) # print(start_x, start_y, end_x, end_y) # 拖动滑块 TouchActions(self.browser).flick_element(pm_button, end_x - start_x, end_y - start_y, 500).perform()
def is_page_refreshed(self, trigger, wait_time=60, detect_interval=0.5): """ to see whether the web page refreshed in certain time :param trigger: the web element that ONLY!!! exist in the last page and it is clickable <webelement> :param wait_time: the time(in sec) that wait until the page refreshed, default is 60 <int> :param detect_interval: time interval that detect whether page is refreshed :return: True if page is refreshed in wait_time , False if page is not refreshed in wait_time """ global refresh_time global is_refreshed try: is_refreshed = False for i in range(0, wait_time): refresh_time = i if self.use_mobile_emulation: TouchActions(self).tap(trigger).perform() else: trigger.click() time.sleep(detect_interval) except WebDriverException: is_refreshed = True print("Page refresh time is:" + str(refresh_time * detect_interval) + " seconds!") return is_refreshed print("Page didn't refresh in " + str(wait_time * detect_interval) + " seconds!") return is_refreshed
def find_text_touch(self, text="", down=0, right=0, xpath=None, find=""): """安住某个键滑动上下滑动 xpath: 可传xath down 和right 其中一个不写默认0 down: down<0 往下滑动 , down>0 往上滑动 right: right<0 往右面滑动 , right>0 往左滑动 down 和right 是滑动的速度 """ if xpath: button = self.driver.find_element_by_xpath(xpath) else: button = self.driver.find_element_by_xpath( f'//android.widget.TextView[@text="{text}"]') Action = TouchActions(self.driver) for i in range(100, 2500, 100): print('移动大小为:', i) if right > 0: Action.flick_element(button, -i, 0, abs(right)).perform() elif right < 0: Action.flick_element(button, i, 0, abs(right)).perform() else: pass if down > 0: Action.flick_element(button, -i, 0, abs(down)).perform() elif down < 0: Action.flick_element(button, i, 0, abs(down)).perform() else: pass html = self.driver.page_source info = Selector(text=html) buttons = info.xpath('//@text').extract() buttons = [i for i in buttons if i != ''] if find in buttons: time.sleep(1) break
def dbl_click_item(id=id, save_screenshot=False, save_screenshot_file=None, max_retry=3): _wait_for_id(id=id, save_screenshot=save_screenshot, save_screenshot_file=save_screenshot_file) element = driver.find_element_by_id(id) if platform == 'android': actions = TouchActions(driver) actions.double_tap(element) retry_count = 1 while retry_count <= max_retry: try: if platform == 'ios': # Fix TBD log('Hacky iOS double tap to a fixed location') driver.execute_script('mobile: doubleTap', { 'x': 200, 'y': 200 }) else: actions.perform() except Exception as e: log('action error, try #{}...'.format(retry_count)) log('Error reported was: ' + str(e)) retry_count = retry_count + 1 sleep(2) else: retry_count = max_retry + 1 pass
def fillType2Code(): print("有验证码type2!!!!!!!!!!!!!!!!!!!") region = (0, 0, 145, 180) driver.execute_script('$(".pb_poster_layer .vcode_panel_input_tip").before("<div></div>");'\ '$(".pb_poster_layer .vcode_panel_input_tip").prev().addClass("bj");'\ '$(".bj").css({"position":"fixed","margin-top":"0","margin-left":"0","left":"0","top":"0","height":"180px","width":"145px","background-color":"white","z-index":"99998"});'\ '$(".pb_poster_layer .j_vcode_target_img").css({"position":"fixed","margin-top":"0","margin-left":"0","left":"0","top":"0","z-index":"99999"});'\ 'var x=0;'\ 'console.log(x);'\ 'var y=1;'\ 'var grids = $(".pb_poster_layer .grid_img");'\ 'for(var i=0;i<grids.length;i++) {'\ '$(grids[i]).css("position","fixed");'\ '$(grids[i]).css("top",y*50+"px");'\ '$(grids[i]).css("left",x*50+"px");'\ '$(grids[i]).css("z-index","99999");'\ 'x++;'\ 'if(x>2){'\ 'x=0;'\ 'y++;'\ '}'\ '}'\ ) resultCode = sendCodeImg(region) print resultCode gridsButton = driver.find_elements_by_css_selector( '.pb_poster_layer .grid_button') for code in resultCode.encode("utf-8"): TouchActions(driver).tap(gridsButton[int(code) - 1]).perform()
def get_post(target_url): while 1: try: option.add_argument(f"--proxy-server={random.choice([i['ip'] for i in client.ips.ips.find()])}") break except:time.sleep(0.5) option.add_argument(random.choice(user_agent_list)) option.add_experimental_option('w3c', False) driver = webdriver.Chrome(chrome_options=option) # driver.maximize_window() try: driver.get(target_url) print(target_url) ui.WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.XPATH, '//a[@class="block"]'))) except TimeoutException as e: driver.quit() print(e) return button = driver.find_element_by_xpath('//a[@class="block"]') Action = TouchActions(driver) Action.scroll_from_element(button, 0, 5000).perform() datas = driver.find_elements_by_tag_name('a') urls = [i for i in [i.get_attribute('href') for i in datas if i.get_attribute('href')] if 'detail' in i] for url in urls: try: client.all_post.mogujie_detail_url.insert({'_id': url, 'status': 0}) print('over:', url) except Exception as e: print(e) client.all_post.mogujie_user.update({'_id': target_url}, {'$set': {'status': 1}}) driver.quit()
def select_timeslot(self, product): """ click time slot[express delivery] and click ok for chicken or else select schedule quantity and cilck ok :param product: this variable to verify chicken or marinades """ if product == "chicken": self.driver.implicitly_wait(19) self.driver.find_element_by_css_selector(self.CSS_SELECTDELIVERTTIME).click() time.sleep(5) try: self.driver.find_element_by_css_selector(self.CSS_EXPRESSDELIVERY).click() except: self.driver.find_element_by_css_selector(self.CSS_EXPRESSDELIVERY1).click() self.driver.find_element_by_css_selector(self.CSS_OK).click() time.sleep(7) elif product == "marinades": self.driver.implicitly_wait(19) torow = self.driver.find_element_by_css_selector(self.CSS_SCHEDULETOMORROW) action = TouchActions(self.driver) action.tap(torow).perform() time.sleep(2) self.driver.find_element_by_css_selector(self.CSS_SELECTDELIVERTTIME).click() try: time.sleep(2) self.driver.find_element_by_css_selector(self.CSS_SCHEDULEDELIVERY).click() except: self.driver.find_element_by_css_selector(self.CSS_SCHEDULEDELIVERY1).click() time.sleep(2) self.driver.find_element_by_css_selector(self.CSS_OK).click() time.sleep(7)
def scut(): browser.get( 'https://member.dossen.com/member/login/phone?redirect_uri=https%253A%252F%252Fshop.m.dossen.com%252Fsignin%252Findex&salerCode=' ) # 将窗口最大化 browser.maximize_window() time.sleep(1) browser.set_window_size(375, 812) # 格式是PEP8自动转的 # 这里是找到输入框,发送要输入的用户名和密码,模拟登陆 time.sleep(random.randint(1, 2)) browser.find_element_by_xpath("//*[@id='userName']").send_keys( os.environ['SCUT_USER']) time.sleep(random.randint(1, 2)) browser.find_element_by_xpath("//*[@id='password']").send_keys( os.environ['SCUT_PASSWORD']) # 在输入用户名和密码之后,点击登陆按钮 time.sleep(random.randint(1, 3)) browser.find_element_by_xpath("/html/body/div[1]/div[2]").click() time.sleep(random.randint(1, 2)) huakuai = browser.find_element_by_xpath( '//*[@id="layui-m-layer0"]/div[2]/div/div/div/div/div/div/div/span[1]') tuodong = TouchActions(browser) tuodong.flick_element(huakuai, 420, 0, 2).perform() time.sleep(random.randint(2, 10)) browser.find_element_by_xpath('//*[@id="app"]/div[3]/div/div[3]').click() chenggong = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div') text = chenggong.text print(text) print('已签到了吧!')
def download(self, number): # Проверяем кол-во картинок assert number < 1000, "Так делать не стоит!" # Создаем объект для работы с окружением картинок touch_act = TouchActions(self.driver) # Берем первую картинку и нажимаем на нее elem = self.driver.find_element_by_class_name("rg_i") touch_act.tap(elem) touch_act.perform() # Выполняем процедуру сохранения for _ in range(number): pyautogui.press('apps') pyautogui.press('esc') time.sleep(1) pyautogui.press('apps') for _ in range(7): pyautogui.press('down') pyautogui.press('enter') time.sleep(2) pyautogui.press('enter') time.sleep(5) pyautogui.press('right')
def tap(self, x, y): x = float(x) * self.ratioX y = float(y) * self.ratioY if self.automationName == 'Appium' : TouchAction(self.driver).press(None, x, y).release().perform() else: TouchActions(self.driver).tap_and_hold(x, y).release(x, y).perform()
def page_flick(self, start_locator, end_locator): driver = self._current_application() el1 = self._element_find(start_locator, True, True) el2 = self._element_find(end_locator, True, True) action = TouchActions(driver) action.long_press(el1).move_to(el2).release().perform()