Exemplo n.º 1
1
 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")
Exemplo n.º 2
0
 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
Exemplo n.º 4
0
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
Exemplo n.º 6
0
    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()
Exemplo n.º 7
0
    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()
Exemplo n.º 8
0
 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("")
Exemplo n.º 9
0
 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()
Exemplo n.º 10
0
 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())
Exemplo n.º 11
0
    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()
Exemplo n.º 12
0
    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)
Exemplo n.º 13
0
 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()
Exemplo n.º 14
0
 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
Exemplo n.º 15
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)
Exemplo n.º 16
0
 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()
Exemplo n.º 17
0
    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("无元素")
Exemplo n.º 19
0
 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()
Exemplo n.º 20
0
    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()
Exemplo n.º 21
0
    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
Exemplo n.º 22
0
 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
Exemplo n.º 23
0
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
Exemplo n.º 24
0
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)
Exemplo n.º 27
0
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('已签到了吧!')
Exemplo n.º 28
0
    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')
Exemplo n.º 29
0
 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()
Exemplo n.º 30
0
    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()