def test_correct_or_message(browser: webdriver.Chrome, urls):
    browser.get(f'https://stepik.org/lesson/{urls}/step/1')
    browser.implicitly_wait(10)
    browser.find_element(By.CLASS_NAME, "textarea").send_keys(answer())
    browser.find_element(By.CLASS_NAME, "submit-submission").click()
    feedback = browser.find_element(By.CLASS_NAME, "smart-hints__hint").text
    assert feedback == 'Correct!', f'Feedback is not "Correct!", real={feedback}'
def test_post_count_after_search():
    # Uruchomienie przeglądarki Chrome. Ścieżka do chromedrivera
    # ustawiana automatycznie przez bibliotekę webdriver-manager
    browser = Chrome(executable_path=ChromeDriverManager().install())

    # Otwarcie strony
    browser.get('https://www.awesome-testing.com/')
    # Inicjalizacja searchbara i przycisku search
    search_bar = browser.find_element(By.CSS_SELECTOR, 'input.gsc-input')
    search_button = browser.find_element(By.CSS_SELECTOR,
                                         'input.gsc-search-button')
    # Szukanie
    search_bar.send_keys('cypress')
    search_button.click()
    # Czekanie na stronę
    wait = WebDriverWait(browser, 10)
    grey_status_bar = (By.CLASS_NAME, 'status-msg-body')
    wait.until(
        expected_conditions.visibility_of_element_located(grey_status_bar))
    # Pobranie listy tytułów
    titles = browser.find_elements(By.CLASS_NAME, 'post-title')
    # Asercja że lista ma 3 elementy
    assert len(titles) == 3
    # Zamknięcie przeglądarki
    browser.close()
예제 #3
0
def submit(chrome: Chrome, pob_url: str, account_name: str, character: str):
    chrome.get(pob_url)

    account_name_input = chrome.find_element(By.ID, 'accountName')
    character_input = chrome.find_element(By.ID, 'character')
    submit_button = chrome.find_element(By.ID, 'fsubmit')

    def pobcode():
        # avoid selenium StaleElementException by using JS
        return chrome.execute_script(
            'return document.getElementById("pobcode").textContent')

    assert pobcode() == ''

    account_name_input.send_keys(account_name)
    character_input.send_keys(character)
    submit_button.click()

    result = pobcode()
    # poll until pobcode.text becomes non-empty
    for i in range(30):
        if result:
            break
        time.sleep(0.1)
        result = pobcode()
    assert result != ''

    return result
예제 #4
0
def LoadProfile(driver: webdriver.Chrome, url: str) -> bool:
    """ Opens the specified LinkedIn profile, then moves around the page in order to load all the lazy-loaded content
    Args:
        driver (webdriver): The page's driver
        url (str): A linkedin profile
    """
    driver.get(url)
    try:
        WebDriverWait(driver, consts.PAGE_LOAD_TIMEOUT).until(
            EC.presence_of_element_located(
                (By.CLASS_NAME, selectors.PAGE_LOADED)))
    except:
        try:
            driver.find_element(By.ID, "captcha-internal")
            ctypes.windll.user32.MessageBoxW(
                0,
                "Captcha détécté.\n L'éxécution de du script reprendra lorsque vous appuierez sur le bouton \"OK\".",
                "HELP", (0x30 | 0x40000))

        except:
            ctypes.windll.user32.MessageBoxW(0, "Erreur inconnue", "Erreur",
                                             (0x30 | 0x40000))

        return False

    LoadLazyLoadedBlocks(driver)
    ExpandAllText(driver)
    return True
def is_in_add_page(driver: webdriver.Chrome) -> bool:
    """判断是否进入了添加成员页面"""
    if len(driver.find_elements(By.CSS_SELECTOR, '#username')) > 0:
        return True
    driver.find_element(
        By.CSS_SELECTOR,
        '[class|=ww_operationBar] .qui_btn.ww_btn.js_add_member').click()
    return False
예제 #6
0
def parse_jobs(driver: Chrome, user_link: str) -> List[str]:
    sleep(delay())
    driver.get(user_link)
    driver.find_element_by_tag_name("body").send_keys(Keys.ESCAPE)  # закроем поп-ап с предложением об оповещениях
    driver.find_element(By.XPATH, "//a[@data-tab-key='about']").click()
    sleep(delay())
    driver.find_element(By.XPATH, "//a[@data-testid='nav_edu_work']").click()
    sleep(delay())
    experience_list = driver.find_elements_by_class_name("experience")
    jobs = [parse_job(item) for item in experience_list]

    return jobs
예제 #7
0
def loginUpload(username, password, path_to_resume):
    '''open browser, login and upload resume
    '''
    try:
        browser = Chrome(options=opts, executable_path=r'chromedriver.exe')
        browser.get('https://www.monsterindia.com/rio/login')
        browser.maximize_window()

        logger.info('Open url in chrome')
        time.sleep(5)

        usernameField = browser.find_element_by_id(
            "signInName")  #('usernameField')
        usernameField.send_keys(username)
        logger.info('Entered username')

        passwordField = browser.find_element_by_id('password')
        passwordField.send_keys(password)
        logger.info('Entered password')

        browser.find_element_by_xpath("//*[@id='SignInForm']/div[2]").click()
        time.sleep(10)
        logger.info('Click login and wait for 5 sec')

        browser.find_element_by_xpath(
            '//*[@id="stickySidebar"]/div[1]/div/a').click()
        time.sleep(5)

        browser.find_element_by_xpath(
            '//*[@id="user-profile-right"]/div/div[2]/div[1]/div/a/i').click()
        time.sleep(5)
        try:
            browser.find_element_by_xpath('//*[@id="resume"]').send_keys(
                path_to_resume)
            time.sleep(5)
            browser.find_element(By.CSS_SELECTOR,
                                 ".form-control:nth-child(3) .pt10").click()
            time.sleep(5)
            browser.save_screenshot(updateimage)
            logger.info('Uploaded')
        except Exception as ex:
            logger.error('Error in login and cv upload: {}'.format(ex))
            raise

    except Exception as ex:
        logger.error('Error in monsterindia cv upload- {}'.format(ex))
    finally:
        browser.quit()
        logger.info('MonsterIndia End')
        logger.info('MonsterIndia End')
예제 #8
0
def get_last_report(browser: webdriver.Chrome, t):
    print('正在获取手机号...')
    browser.get('https://selfreport.shu.edu.cn/PersonInfo.aspx')
    time.sleep(1)

    # 手机号
    ShouJHM = browser.find_element(By.ID, 'persinfo_ctl00_ShouJHM-inputEl').get_attribute('value')
    if NEED_BEFORE:
        print('开始补报,正在获取补报日期前一天的填报信息...')
        t = START_DT - dt.timedelta(days=1)
    else:
        print('正在获取前一天的填报信息...')
        t = t - dt.timedelta(days=1)
    browser.get(f'https://selfreport.shu.edu.cn/ViewDayReport.aspx?day={t.year}-{t.month}-{t.day}')
    time.sleep(1)

    # 是否在上海,在上海(校内),在上海(不在校内),不在上海
    ShiFSH = browser.find_element(By.CSS_SELECTOR, '#ctl03_ShiFSH #ctl03_ShiFSH-inputEl').text
    # 是否住校
    ShiFZX = 'f-checked' in browser.find_element(By.CSS_SELECTOR, '#ctl03_ShiFZX .f-field-checkbox-icon').get_attribute('class')
    # 省
    ddlSheng = browser.find_element(By.CSS_SELECTOR, '#ctl03_ddlSheng #ctl03_ddlSheng-inputEl').get_attribute('value')
    # 市
    ddlShi = browser.find_element(By.CSS_SELECTOR, '#ctl03_ddlShi #ctl03_ddlShi-inputEl').get_attribute('value')
    # 县
    ddlXian = browser.find_element(By.CSS_SELECTOR, '#ctl03_ddlXian #ctl03_ddlXian-inputEl').get_attribute('value')
    # 详细地址
    XiangXDZ = browser.find_element(By.CSS_SELECTOR, '#ctl03_XiangXDZ #ctl03_XiangXDZ-inputEl').get_attribute('value')
    # 是否家庭地址
    ShiFZJ = 'f-checked' in browser.find_element(By.CSS_SELECTOR, '#ctl03_ShiFZJ .f-field-checkbox-icon').get_attribute('class')

    return ShouJHM, ShiFSH, ShiFZX, ddlSheng, ddlShi, ddlXian, XiangXDZ, ShiFZJ
예제 #9
0
def does_element_exist(driver: webdriver.Chrome, by_selector, identifier: str) -> bool:
    """
    Function that checks if a element exists on the page
    :param driver: selenium.webdriver
    :param by
    :param identifier: either a ID attribute or an xPath
    :return:
    """
    try:
        driver.find_element(by_selector, identifier)
        return True

    except common.exceptions.NoSuchElementException:
        return False
예제 #10
0
def check_element_exist(driver: webdriver.Chrome,
                        path: str,
                        by: str = 'xpath') -> bool:
    try:
        if by == 'xpath':
            driver.find_element_by_xpath(path)
        elif by == 'css':
            driver.find_element_by_css_selector(path)
        elif by == 'id':
            driver.find_element(By.ID, path)
        else:
            logger.info(f"Unable to check element using '{by}'")
    except NoSuchElementException:
        return False
    return True
    def test_successful_login_to_crm(self):
        """Successful admin login"""
        driver = Chrome()
        driver.get('https://demo.django-crm.io/login/')
        email_input = driver.find_element(By.ID, 'exampleInputEmail1')
        password_input = driver.find_element(By.ID, 'exampleInputPassword1')
        login_button = driver.find_element_by_class_name('btn-danger')

        email_input.send_keys('*****@*****.**')
        password_input.send_keys('admin')
        login_button.submit()

        assert driver.find_element_by_id('contacts').is_displayed()
        sleep(2)
        driver.quit()
def test_post_count_on_cypress_label():
    # Uruchomienie przeglądarki Chrome. Ścieżka do chromedrivera
    # ustawiana automatycznie przez bibliotekę webdriver-manager
    browser = Chrome(executable_path=ChromeDriverManager().install())

    # Otwarcie strony
    browser.get('https://www.awesome-testing.com/')
    # Inicjalizacja elementu z labelką
    label = browser.find_element(By.LINK_TEXT, 'Cypress')
    # Kliknięcie na labelkę

    label.click()
    #Czekanie na stronę
    wait = WebDriverWait(browser, 10)
    grey_status_bar = (By.CLASS_NAME, 'status-msg-body')
    wait.until(
        expected_conditions.visibility_of_element_located(grey_status_bar))

    # Pobranie listy tytułów
    titles = browser.find_elements(By.CSS_SELECTOR, 'input.gsc-input')
    # Asercja że lista ma 1 element
    assert len(titles) == 1
    # Zamknięcie przeglądarki

    browser.close()
예제 #13
0
def discounts_hm(url, threshold_pct, sleep=1):
    browser = Chrome()
    browser.get(url)

    try:
        for x in range(100):
            more = browser.find_element(By.CSS_SELECTOR, 'button.js-load-more')
            if more.is_displayed():
                more.click()
                browser.find_element_by_tag_name('body').send_keys(Keys.END)
                time.sleep(sleep)

        soup = BeautifulSoup(browser.execute_script('return document.documentElement.outerHTML'), 'html.parser')
        items = soup.find_all('li', class_='product-item')
        for item in items:
            prices = item.find('strong', class_='item-price')
            discount = parse_price(prices.find('span', class_='sale').text)
            regular = parse_price(prices.find('span', class_='regular').text)
            article = item.find('h3', class_='item-heading')
            uri = URI_SCHEME_NETLOC.format(uri=(urlparse(url))) + article.a['href']
            if get_discount_pct(discount, regular) > threshold_pct:
                discounts.append(Discount(get_discount_pct(discount, regular), discount, article.a.text, uri))
    except ElementClickInterceptedException as e:
        print(traceback.format_exc())
    browser.close()
예제 #14
0
    def add_more_information(self, driver: webdriver.Chrome):
        string_additional_info = ''
        if (self.question.input_type == HTMLConstants.InputTypes.CHECK_BOX) or \
                (self.question.input_type == HTMLConstants.InputTypes.RADIO):
            list_spans: List[FirefoxWebElement] = driver.find_elements(
                By.XPATH,
                IndeedConstants.XPath.compute_xpath_radio_span(self.name))
            list_spans = [
                span for span in list_spans
                if span.get_attribute(HTMLConstants.Attributes.CLASS) !=
                IndeedConstants.Class.HELP_BLOCK
            ]
            assert len(list_spans) == len(self.element_list)

            for i, span in enumerate(list_spans):
                string_additional_info += '{0}{1}'.format(
                    span.get_attribute(HTMLConstants.Attributes.INNER_TEXT),
                    ModelConstants.DELIMITER.ANSWER)

        elif self.question.tag_type == HTMLConstants.TagType.SELECT:
            select = Select(driver.find_element(By.NAME, self.name))
            list_options: List[FirefoxWebElement] = select.options
            for option in list_options:
                string_additional_info += '{0}{1}'.format(
                    option.get_attribute(HTMLConstants.Attributes.INNER_TEXT),
                    ModelConstants.DELIMITER.ANSWER)

        self.question.additional_info = string_additional_info
예제 #15
0
class TestLogin:
    def __init__(self):
        self.driver = Chrome(executable_path='chromedriver.exe')

    def open_page(self, url):
        self.driver.get(url)
        self.driver.maximize_window()

    def close_all_browsers(self):
        self.driver.quit()

    def get_element(self, locator):
        by = locator.split(':')[0]
        value = ':'.join(locator.split(':')[1:])
        return self.driver.find_element(by, value)

    def input_text(self, locator, text):
        element = self.get_element(locator)
        if element:
            element.send_keys(text)

    def click(self, locator):
        element = self.get_element(locator)
        if element:
            element.click()

    def is_element_present(self, locator):
        try:
            self.get_element(locator)
        except NoSuchElementException:
            print("Element does not present")
            return False
        return True
예제 #16
0
def open_in_new_tab(driver: webdriver.Chrome, by: By, identifier: str, ) -> bool:
    try:
        element_to_click = driver.find_element(by, identifier)
        ActionChains(driver).key_down(Keys.CONTROL).click(element_to_click).key_up(Keys.CONTROL).perform()
        return True
    except common.exceptions.NoSuchElementException:
        return False
예제 #17
0
def test_searching_in_duckduckgo():
    # Uruchomienie przeglądarki Chrome. Ścieżka do chromedrivera
    # ustawiana automatycznie przez bibliotekę webdriver-manager
    browser = Chrome(executable_path=ChromeDriverManager().install())
    # Otwarcie strony duckduckgo
    browser.get('https://duckduckgo.com/')
    # Znalezienie paska wyszukiwania
    search_form = browser.find_element(By.CSS_SELECTOR,
                                       '#search_form_input_homepage')

    # Znalezienie guzika wyszukiwania (lupki)
    search_button = browser.find_element_by_id('search_button_homepage')

    # Asercje że elementy są widoczne dla użytkownika
    assert search_form.is_displayed()
    assert search_button.is_displayed() is True

    # Szukanie Vistula University
    search_form.send_keys('Vistula University')
    search_button.click()

    # Sprawdzenie że akikolwiek wynik ma tytuł 'Vistula University in Warsaw'
    list = browser.find_elements(By.CSS_SELECTOR, '.result__title')
    list_of_titles = []
    for i in list:
        list_of_titles.append(i.text)
    assert 'Vistula University in Warsaw' in list_of_titles
    assert list == 'Vistula University in Warsaw'

    # Zamknięcie przeglądarki

    browser.quit()
예제 #18
0
def discounts_tezyo(url, threshold_pct, price_limit=10000, sleep=2):
    browser = Chrome()
    browser.get(url)

    try:
        condition = True
        while condition is True:
            soup = BeautifulSoup(browser.execute_script('return document.documentElement.outerHTML'), 'html.parser')
            items = soup.find_all('li', class_='item')
            for item in items:
                price_p = item.find('p', class_='old-price')
                if price_p is None:
                    continue
                regular = parse_price(price_p.span.text)
                discount = parse_price(item.find('span', class_='discount-price').span.text)
                article = item.find('div', class_='product-info')
                if get_discount_pct(discount, regular) > threshold_pct and discount < price_limit:
                    discounts.append((Discount(get_discount_pct(discount, regular), discount, article.h2.text, article.a['href'])))
            pages = browser.find_element(By.CSS_SELECTOR, 'div.pages')
            next_page = pages.find_elements(By.CSS_SELECTOR, 'li')[-1]
            if next_page.is_displayed():
                next_page.click()
                time.sleep(sleep)
            last_btn = soup.find('div', class_='pages').find_all('li')[-1]
            if last_btn.find('a', class_='next') is None:
                condition = False
    except ElementClickInterceptedException as e:
        print(traceback.format_exc())
    browser.close()
예제 #19
0
class BotWeb():

    def __init__(self):
        op = Options()
        op.headless = True
        self.driver = Chrome(options=op)
        self.driver.implicitly_wait(15)
        self.respostas = (By.CLASS_NAME,'WAC__bot-message')
        self.pergunta = (By.CLASS_NAME,'WAC__TextArea-textarea')
        self.btn = (By.ID,'WAC__send-button')
        self.WaitText = (By.CLASS_NAME, 'WAC__RichText')
        self.retorno = 'Did you mean:'
        self.retorno2 = 'Ainda não fui treinado para falar sobre esse assunto...'
        # self._url = 'https://web-chat.global.assistant.watson.cloud.ibm.com/preview.html?region=us-south&integrationID=d124b8aa-0744-44e5-9719-3c8675cc9403&serviceInstanceID=ae4691d0-deef-4df0-8b2f-666db7d5d7d6'
        self._url = 'https://bityli.com/KzdTC'

    def arquivoOK(self,text, resp):
        _conv = open('conversas_Ok.txt', 'a', encoding='utf-8')
        _conv.writelines(f"pergunta: {text},\n resposta: {resp}\n\n")
        _conv.close()

    def arquivo_Erro(self,text, resp):
        _conv = open('conversas_com_Erro.txt', 'a', encoding='utf-8')
        _conv.writelines(f"pergunta: {text},\n resposta: {resp}\n\n")
        _conv.close()

    def bot(self):
        self.driver.get(self._url)
        for per in conv:
            self.driver.find_element(*self.pergunta).send_keys(per)
            sleep(1)
            self.driver.find_element(*self.btn).click()
            sleep(3)
            teste = list(self.driver.find_elements(*self.WaitText))
            frase = teste[-2].text
            if frase != self.retorno and frase != self.retorno2:
                self.arquivoOK(per, frase)
                print(per)
                print(frase)
                print('===' * 50)
            else:
                self.arquivo_Erro(per, frase)
                print(per)
                print(frase)
                print('===' * 50)
        self.driver.close()
        self.driver.quit()
예제 #20
0
    def answer_all_questions(self, driver: webdriver.Chrome, job: Job,
                             dict_qle: Dict[str, QuestionLabelElements]):
        # Initialize
        names = list(dict_qle.keys())
        i = 0
        name = names[i]
        list_continues: List[FirefoxWebElement] = driver.find_elements(
            By.XPATH, IndeedConstants.XPath.BUTTON_CONT)

        while True:
            qle = dict_qle[name]
            state = self._answer_question(driver, job, qle)
            if state == self.AnswerState.CANNOT_ANSWER:
                job.error = RobotConstants.String.UNABLE_TO_ANSWER
                return False

            if state == self.AnswerState.NOT_VISIBLE:
                for element_continue in list_continues:
                    try:
                        element_continue.click()
                        break
                    except common.exceptions.ElementNotVisibleException as e:
                        pass
                    except common.exceptions.NoSuchElementException as e:
                        job.error = str(e)
                        return False

            else:
                if i == len(names) - 1:
                    try:
                        driver.find_element(
                            By.XPATH,
                            IndeedConstants.XPath.BUTTON_APPLY).click()
                        return True
                    except common.exceptions.NoSuchElementException as e:
                        job.error = str(e)
                        return False
                    except common.exceptions.ElementNotVisibleException as e:
                        # TODO: Figure out why this happens
                        driver.find_element(
                            By.XPATH,
                            IndeedConstants.XPath.BUTTON_CONT).click()
                        i -= 1

                i += 1
                name = names[i]
예제 #21
0
def IsLoggedIn(driver: webdriver.Chrome) -> bool:
    """Returns true if the user is currently logged to LinkedIn

    Args:
        driver (Webdriver): The page's driver

    Returns:
        bool: Returns true if the user is currently logged to LinkedIn
    """
    if ("linkedin.com" not in driver.current_url):
        driver.get("https://www.linkedin.com")

    try:
        driver.find_element(By.CLASS_NAME, selectors.SIGN_IN_BUTTON)
        return True
    except:
        return False
예제 #22
0
def test_button_add_basket(browser: webdriver.Chrome):
    link = 'http://selenium1py.pythonanywhere.com/catalogue/coders-at-work_207'
    browser.get(link)

    try:
        __ = browser.find_element(By.CSS_SELECTOR, 'button.btn-add-to-basket')
    except NoSuchElementException:
        assert False, 'Basket was not found'
예제 #23
0
class Whats:

    def __init__(self):

        self._url = 'https://web.whatsapp.com/'
        self.driver = Chrome()
        self.driver.implicitly_wait(30)
        self.bot = Bot()
        self.lista = (By.ID, 'pane-side')
        self.grupo_name = input('Insira o nome de um contato ou grupo: ')
        self.grupo = (By.XPATH, f"//span[@title='{self.grupo_name}']")
        self.Ler_mensagens = (By.XPATH, '//div[contains(@class,"message-in focusable-list-item")]')
        self.box_msg = (By.CLASS_NAME,'_3uMse')
        self.btn = (By.XPATH, f'//span[@data-icon="send"]')
        self.driver.get(self._url)
        sleep(10)

    def groupo(self):
        for grupos in self.driver.find_elements(*self.lista):
            grupos.find_element(*self.grupo).click()
            sleep(2)

    def ler_msg(self):
        conv = list()
        for total in self.driver.find_elements(*self.Ler_mensagens):
            conv.append(total.text.split('\n')[-1])
        conv[-1].pop()
        # conv = '\n'.join(conv[-1][1:])
        # if conv.startswith('Encaminhada'):
        #     return conv.replace('Encaminhada','')
        # else:
        return conv[-1]

    def envia_msg(self, msg = None):
        if msg != None or msg != '':
            Box = self.driver.find_element(*self.box_msg)
            Box.click()
            Box.send_keys(msg+'\n')
            print(msg)
        else:
            pass

    def conversas(self):
        self.bot.aprender()
        conversas = set()
        self.groupo()
        self.envia_msg('Assistente iniciado!!')
        conversas.add('Assistente iniciado!!')
        print('Procurando Mensagens!!')
        while True:
            al = self.ler_msg()
            if al not in conversas:
                print(al)
                bot = self.bot.retorno_chat(al)
                conversas.add(al)
                conversas.add(str(bot))
                self.envia_msg(str(bot))
예제 #24
0
def join_room(url, num):
    driver = Chrome(options=opts)
    driver.get(url)
    login = WebDriverWait(driver, 5, 1).until(EXPECTED)
    login.send_keys('selenium' + str(num))
    btn = driver.find_element(By.CSS_SELECTOR, LOGIN_BUTTON)
    btn.click()
    sleep(TIME)
    leave_room(driver)
예제 #25
0
 def __call__(self, brow: webdriver.Chrome):
     try:
         element = brow.find_element(*self.locator)
         element.click()
         return element
     except (ElementNotInteractableException, NoSuchElementException,
             ElementClickInterceptedException,
             StaleElementReferenceException):
         time.sleep(0.1)
         return False
예제 #26
0
class TestNavigation(StaticLiveServerTestCase):
    """
        test Navigation from homepage
    """
    def setUp(self):
        self.browser = Chrome()
        self.browser.implicitly_wait(10)

    def tearDown(self):
        self.browser.close()

    def test_bad_address_returns_handler404(self):
        """
            Test bad address is caught by the handler and redirect to error page
        """
        print(inspect.currentframe().f_code.co_name)
        response = self.browser.get('%s%s' % (self.live_server_url, '/test'))
        # message = self.browser.find_element_by_tag_name('h1').text
        self.assertTemplateUsed(response, 'errors/errors.html')

    def test_click_mentions(self):
        """
            Test the click on mentions redirect to mentions page
        """
        print(inspect.currentframe().f_code.co_name)
        self.browser.get(self.live_server_url)
        user_url = self.live_server_url + reverse('home_app:mentions')
        element = self.browser.find_element_by_partial_link_text('mentions')
        actions = ActionChains(self.browser)
        actions.move_to_element(element)
        actions.click(element)
        actions.perform()
        self.assertEquals(self.browser.current_url, user_url)

    def test_click_icon_person_to_user(self):
        """
            Test click on the person image redirect to user page
        """
        print(inspect.currentframe().f_code.co_name)
        self.browser.get(self.live_server_url)
        user_url = self.live_server_url + reverse('user_app:user')
        self.browser.find_element(By.CSS_SELECTOR, ".nav-item img").click()
        self.assertEquals(self.browser.current_url, user_url)
예제 #27
0
    def _answer_message(self, driver: webdriver.Chrome, job: Job,
                        qle: QuestionLabelElements) -> Enum:
        message = self.ab_builder.generate_message(job.description,
                                                   job.company)
        if message is not None:
            try:
                driver.find_element(By.NAME, qle.name).send_keys(message)
                job.message = message
                return self.AnswerState.CONTINUE

            except common.exceptions.ElementNotVisibleException as e:
                return self.AnswerState.NOT_VISIBLE

            except common.exceptions.NoSuchElementException as e:
                job.error = str(e)
            return self.AnswerState.CANNOT_ANSWER

        else:
            job.error = RobotConstants.String.NOT_ENOUGH_KEYWORD_MATCHES
            return self.AnswerState.CANNOT_ANSWER
예제 #28
0
def GetContactName(driver: webdriver.Chrome) -> tuple:
    """Returns a contact's first and last name from a linkedin profile, as a tuple(firstname,lastname)

    Args:
        driver (webdriver): The page's driver

    Returns:
        tuple: (firstName, lastname)
    """
    fullName: list = driver.find_element(
        By.CSS_SELECTOR, selectors.CONTACT_NAME).text.strip().split(' ')
    return (fullName[0], fullName[1])
예제 #29
0
def play_vtv(url):
    global driver
    
    try:
        driver.quit()
    except:
        print("something went wrong when quitting the driver")

    driver = Chrome()
    driver.get(url)

    try:
        play_button = driver.find_element(By.CSS_SELECTOR, "video.vjs-tech")
        play_button.click()

        sleep(0.5)
        full_screen_button = driver.find_element(By.CSS_SELECTOR, "button.vjs-fullscreen-control")
        full_screen_button.click()

    except:
        print("the button was probably unavailable")
예제 #30
0
def open_app(pincode):
    driver = Chrome()
    driver.get("https://selfregistration.cowin.gov.in/")
    mobile_no = driver.find_element(
        By.ID, "mat-input-0").send_keys("9551045397" + Keys.ENTER)
    otp_btn = driver.find_element_by_tag_name('ion-button').click()
    # sleep(2)
    # driver.find_element_by_tag_name('input').click()  #click on otp field and be ready
    set_search(driver, pincode)
    filter_by_pincode(driver, pincode)
    # filter_by_district(driver)
    return True