Пример #1
0
    def test_candel_task(self, title):
        '''
        取消删除任务成功_验证单选第一条进行删除;CRM-ST-BG-003
        :return:
        '''
        # username = "******"
        # password = "******"
        # tasktitle="任务二"

        #登录
        # lp = LoginPage(self.driver)
        # lp.open()
        # lp.login(username,password)
        # #去任务页面
        # ip = IndexPage(self.driver)
        # ip.task_button_click()
        # #查找指定任务进行删除

        sleep(3)
        tp = TaskPage(self.driver, TASK_URL)
        tp.open()
        tp.task_title_click(title)
        sleep(3)
        tp.task_delate_button_click()
        sleep(3)
        #删除弹框确认
        confirm = Alert(self.driver)
        confirm.dismiss()
        sleep(3)
        #断言
        text = tp.task_title_get()
        logger.info(text)
        self.assertIn(title, text)
Пример #2
0
        def test_candel_notice(self):
            '''
            取消删除公告管理;CRM-ST-BG-021
            :return:
            '''
            # 登录
            username = "******"
            password = "******"
            noticetitle = "公告"
            lp = LoginPage(self.driver)
            lp.open()
            lp.login(username, password)
            # 去到公告管理页面
            sleep(3)
            ip = IndexPage(self.driver)
            ip.username_click()
            sleep(3)
            ip.notice_click()
            sleep(3)
            # 删除公告
            np = NoticePage(self.driver)
            np.notice_del(noticetitle)
            np.notice_del_button_click()
            # 确认删除
            sleep(3)
            confirm = Alert(self.driver)
            confirm.dismiss()

            # 断言
            text = np.notice_title_get()
            logger.info(text)
            self.asserttIn(noticetitle, text)
Пример #3
0
 def doLogin(self, credential):
     if self.driver:
         alert = Alert(self.driver)
         if alert and credential:
             print(alert)
             #alert.send_keys(f'u{Keys.TAB}p')
             #alert.send_keys( usr + Keys.TAB + pwd )
             alert.send_keys(str(credential))
             sleep(5)
             alert.accept()
             sleep(10)
             print(self.driver.current_url)
             if self.driver.current_url == MAIN_URL:
                 self.loged = True
                 print("Loged IN !  :)")
                 return True
             else:
                 alert.dismiss()
                 print("Could not log in..  :(")
                 return False
         else:
             print("Could not auth alert")
             return False
     else:
         print("Could not find driver FF")
         return False
Пример #4
0
    def _event_after_step(self, context, step):
        from selenium.webdriver.common.alert import Alert
        from selenium.common.exceptions import UnexpectedAlertPresentException, \
                                                NoAlertPresentException

        # any alert must close now, or else the browser will be stuck
        # in an unusable state for further actions
        try:
            if isinstance(step.exception, UnexpectedAlertPresentException):
                alert = Alert(context.browser)
                self._log.warning("Browser had alert: %s",
                                  step.exception.alert_text or alert.text)
                alert.dismiss()
        except NoAlertPresentException:
            # A bit weird. May happen if alert was not on current `context.browser`
            pass
        except Exception:
            self._log.debug("could not post-process browser alert:",
                            exc_info=True)

        if step.status == Status.failed:
            try:
                msg_url = "Browser currently at: %s\n" % context.browser.current_url
            except Exception:
                msg_url = ''
            self._log.warning("Step: \"%s\" failed.\n%s%s", step.name, msg_url,
                              step.exception or "no exception")
            self.events.after_step_failed(context, step)
        try:
            self.process_logs(context)
        except urllib3.exceptions.RequestError as e:
            self._log.warning("Could not fetch logs, browser closed?\n%s", e)
        except Exception as e:
            self._log.error("Could not fetch step logs: %s", e)
    def wrapper(self, *args, **kwargs):
        def to_logger(msg, js_level):
            level = None
            if js_level == "INFO":
                level = self.config.javascript.info
            elif js_level == "WARNING":
                level = self.config.javascript.warning
            elif js_level == "SEVERE":
                level = self.config.javascript.severe
            if level == "debug":
                logger.debug(msg)
            elif level == "info":
                logger.info(msg)
            elif level == "warning":
                logger.warning(msg)
            elif level == "error":
                logger.error(msg)
            elif level == "critical":
                logger.critical(msg)

        alert_text = None
        try:
            return func(self, *args, **kwargs)
        except UnexpectedAlertPresentException:
            # Some websites create an alert to communicate an error message instead of throwing the normal exception
            # or instead of things normal people use popups for.
            # However, selenium can be "too quick" to dismiss the alerts and crash.
            alert = Alert(self.driver)
            try:
                alert_text = alert.text
                alert.dismiss()
            except NoAlertPresentException:
                pass
        except JavascriptException as e:
            logger.error(
                "Exception thrown in the browser's Javascript engine.")
            logger.debug(e)
        finally:
            log_records = []
            try:
                log_records = self.driver.get_log("browser")
            except (WebDriverException, WindowClosedError):
                logger.warning("Failed to fetch log records from the driver")

            # Print browser logs
            for record in sorted(log_records,
                                 key=lambda x: int(x["timestamp"])):
                record["timestamp"] = datetime.fromtimestamp(
                    record["timestamp"] / 1000).strftime("%H:%M")
                log_line = f"[{record['level']}] {record['message']}"
                log_level = record["level"]
                to_logger(log_line, log_level)

            # Then alert text, if there was any
            if alert_text is not None:
                logger.error(f"  JS Alert text:  {alert_text}")

        return None
Пример #6
0
def dismiss_alert(step):
    """
    Dismiss the alert
    """

    try:
        alert = Alert(world.browser)
        alert.dismiss()
    except WebDriverException:
        # PhantomJS is kinda poor
        pass
Пример #7
0
def dismiss_alert(test):
    """
    Dismiss the alert
    """

    try:
        alert = Alert(test.browser)
        alert.dismiss()
    except WebDriverException:
        # PhantomJS is kinda poor
        pass
Пример #8
0
 def alertDismiss(self, xpath, value):
     try:
         alert = Alert(self.driver)
         alert.dismiss()
         result = {"state": True, "info": ""}
     except Exception as e:
         result = {
             "state": False,
             "info": getErrInfo(xpath, "alertDismiss", value, str(e))
         }
     return result
Пример #9
0
def dismiss_alert(self):
    """
    Dismiss the alert.
    """

    try:
        alert = Alert(world.browser)
        alert.dismiss()
    except WebDriverException:
        # PhantomJS is kinda poor
        pass
Пример #10
0
 def _handle_alert(self, alert: Alert_, action: str) -> str:
     """处理警告框并返回警告框文本内容"""
     action = action.upper()
     text = alert.text
     if action == self.ACCEPT:
         self.logger.info("接受警告框")
         alert.accept()
     elif action == self.DISMISS:
         self.logger.info("取消警告框")
         alert.dismiss()
     elif action != self.LEAVE:
         raise ValueError(f"无效的警告框处理行为:{action}")
     return text
Пример #11
0
    def crwalDetail(self, element):
        try:
            name = element.find_element_by_tag_name('a').text
            if not self.exceptMember(name):
                return
            member_guild_info = element.find_element_by_class_name(
                'gd_fr_info').text.split(' ')
            grade = member_guild_info[1]
            contribution = member_guild_info[4]
            self._sub_driver.get(
                element.find_element_by_tag_name('a').get_attribute('href'))

            temp = self._sub_driver.find_element_by_class_name(
                'char_info').find_elements_by_tag_name('dl')
            level = temp[0].find_element_by_tag_name('dd').text.split('LV.')[1]
            member_class = temp[1].find_element_by_tag_name('dd').text.split(
                '/')[0]
            job = temp[1].find_element_by_tag_name('dd').text.split('/')[1]

            t = self._sub_driver.find_elements_by_css_selector(
                '#wrap > div.center_wrap > div.char_info_top > div.char_info > div.level_data > span'
            )
            exp = t[0].text.split('경험치')[1].replace(',', '')
            pop = t[1].text.split('인기도')[1].replace(',', '')

            member = list()
            member.append(grade)
            member.append(name)
            member.append(level)
            member.append(member_class)
            member.append(job)
            member.append(exp)
            member.append(contribution)
            member.append(pop)
            member.append(self.exemptMember(name))
            self._member.append(member)

        except UnexpectedAlertPresentException as e:
            print(e)
            am = Alert(self._sub_driver)
            am_text = am.text
            am.dismiss()
            if am_text == re_text:
                self.crwalDetail(element)
                print('RE')
            else:
                logger.logging(e, am_text)
                print(am_text)
        return True
Пример #12
0
 def alert_dismiss(self):
     """弹出框的取消"""
     try:
         ele = self.alert_is_pressent()
         ele.dismiss()
     except:
         try:
             alert = self.driver.switch_to_alert()
             alert.dismiss()
         except:
             try:
                 alert = Alert(self.driver)
                 alert.dismiss()
             except:
                 raise ("not find alert")
Пример #13
0
class AlertTest(unittest.TestCase):
    def setUp(self):
        #Initialize webdriver
        self.driver = webdriver.Chrome()
        self.driver.get('http://127.0.0.1:5500/test_stub.html')
        self.alert = Alert(self.driver)

    # def test_accept_alert(self):
    #     self.driver.find_element_by_css_selector('button').click()
    #     time.sleep(2)
    #     self.alert.accept()

    def test_reject_alert(self):
        self.driver.find_element_by_css_selector('button').click()
        time.sleep(2)
        self.alert.dismiss()

    def tearDown(self):
        self.driver.close()
 def alert_action(self, alert_action_state, text=None):
     try:
         alert = Alert(self.context.driver)
         if alert_action_state == AlertAction.ACCEPT:
             alert.accept()
             self.context.logger.info("Alert accept performed")
             return True
         elif alert_action_state == AlertAction.DISMISS:
             alert.dismiss()
             return True
         elif alert_action_state == AlertAction.SETTEXT:
             print(text)
             alert.send_keys(text)
             return True
         elif alert_action_state == AlertAction.GETTEXT:
             return alert.text
         return False
     except NoAlertPresentException as e:
         raise NoAlertPresentException(e)
 def test_alerts(self):
     """This is used to test different types of alerts"""
     self.driver.find_element(By.ID,"alertBox").click()
     ac = Alert(self.driver)
     ac.accept()
     time.sleep(1)
     self.driver.find_element(By.ID,"confirmBox").click()
     ac = Alert(self.driver)
     ac.accept()
     time.sleep(1)
     self.driver.find_element(By.ID, "confirmBox").click()
     ac = Alert(self.driver)
     ac.dismiss()
     time.sleep(1)
     self.driver.find_element(By.ID,"promptBox").click()
     ac = Alert(self.driver)
     ac.text ='chrome'
     time.sleep(2)
     ac.accept()
Пример #16
0
    def wrapper(*args, **kwargs):
        self = args[0]
        alert_text = None
        try:
            return func(*args, **kwargs)
        except UnexpectedAlertPresentException:
            # Some websites create an alert to communicate an error message instead of throwing the normal exception
            # or instead of things normal people use popups for.
            # However, selenium can be "too quick" to dismiss the alerts and crash.
            alert = Alert(self.driver)
            try:
                alert_text = alert.text
                alert.dismiss()
            except NoAlertPresentException:
                pass
        except JavascriptException as e:
            logger.error(
                "Exception thrown in the browser's Javascript engine.")
            logger.debug(e)
        finally:
            log_records = []
            try:
                log_records = self.driver.get_log("browser")
            except (WebDriverException, WindowClosedError):
                logger.warning("Failed to fetch log records from the driver")

            # Print browser logs
            for record in sorted(log_records,
                                 key=lambda x: int(x["timestamp"])):
                record["timestamp"] = datetime.fromtimestamp(
                    record["timestamp"] / 1000).strftime("%H:%M")
                log_line = "[{level}] {message}".format(**record)
                if record["level"] in JS_DEBUG_LEVELS:
                    logger.debug(log_line)
                elif record["level"] in JS_ERROR_LEVELS:
                    logger.error(log_line)

            # Then alert text, if there was any
            if alert_text is not None:
                logger.error(f"  JS Alert text:  {alert_text}")
Пример #17
0
def mute_mic_and_cam():
    print("Muting mic and camera...")
    try:
        # close popup
        dismiss = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located(
                (By.XPATH,
                 "/html/body/div/div[3]/div/div[2]/div[3]/div/span/span")))
        dismiss.click()
        # dismiss alert
        alert = Alert(driver)
        alert.dismiss()
        # mute mic
        mic = WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((
                By.XPATH,
                "/html/body/div[1]/c-wiz/div/div/div[7]/div[3]/div/div/div[2]/div/div[1]/div["
                "1]/div/div[4]/div[1]/div/div/div")))
        mic.click()
        print("Muted mic and camera")
    except Exception as e:
        print(e)
Пример #18
0
class Common_driver():
    # de
    def __init__(self, webElement_for_select=None):
        self.act = webdriver.ActionChains(Driver().driver())
        self.alt = Alert(Driver.driver())
        # self.select = Select(webElement_for_select)
    def explicit_wait(self, xpath):
        # self.wait = WebDriverWait(Driver().driver(), 10).until(EC.presence_of_element_located((xpath)))
        pass
        # return self.wait

    # use ActionChains class for clicking through action
    def actions_click(self, menu):
        # self.act.move_to_element(menu)
        self.act.move_to_element(menu).click().perform()
        # self.act.click(menu)
        # self.act.perform()
    def actions_double_click(self, menu):
        self.act.double_click(menu).perform()

    def actions_move_to_element(self, menu, hidden_menu):
        self.act.move_to_element(menu).click().perform()
        self.act.click(hidden_menu).perform()
        # self.act.perform()

    #ActionChains for click and hold
    def click_and_hold(self, webElement1):
        # act = ActionChains(Driver().driver())
        self.act.click_and_hold(webElement1).perform()

    #context click
    def context_click(self, webElement1):
        self.act.context_click(webElement1).perform()

    #drag and drop
    def drag_and_drop(self, webElement1_drag, webElement1_drop):
        self.act.drag_and_drop(webElement1_drag, webElement1_drop).perform()

    # key down
    def key_down(self, value):
        self.act.key_down(Keys.CONTROL).send_keys(value).key_up(
            Keys.CONTROL).perform()
        #suppose you want to write ctrl+c , then put 'c' in value

    #Alerts  -  use this class to interact with alert prompts . It contains methods
    # for dismissing ,accepting, and getting text from alert prompts

    # accepting
    #accept the accept available
    def alert_accept(self):
        self.alt.accept()  # confirm a alert dialog

    def alert_dismiss(self):
        self.alt.dismiss(self)

    # authenticate the username and password
    def alert_authenticate(self, username, password):
        Driver().driver().swith_to_alert.authenticate(username, password)

    def alert_send_keys(self, keys_to_send):
        self.alt.send_keys(keys_to_send)

    #text - to get text from alert
    # here is end of the alert
    @classmethod
    def sele(cls, webElement1):
        sel = Select(webElement1)
        return cls(sel)

    # select starts
    def select_by_index(self, webElement1, index):
        self.sel = Select(webElement1)
        # self.sel = Common_driver.sele(webElement1)
        self.sel.select_by_index(index)

    def select_by_visible_text(self, webElement1, text):
        self.sel = Select(webElement1)
        self.sel.select_by_visible_text(text)

    def select_by_value(self, webElement1):
        self.sel = Select(webElement1)
        self.sel.select_by_value(value)
Пример #19
0
def handlePopUp():
    alert = Alert(driver)
    alert.dismiss()  # sometimes NoAlertPersentException occurs
Пример #20
0
 def alert_operate(self, accept=True):
     alert = Alert(self.driver)
     print(alert.text)
     alert.accept() if accept else alert.dismiss()
Пример #21
0
def dismiss_alert(browser):
    try:
        alert = Alert(browser)
        alert.dismiss()
    except WebDriverException:
        pass
Пример #22
0
def dismiss_alert(browser):
    try:
        alert = Alert(browser)
        alert.dismiss()
    except WebDriverException:
        pass
Пример #23
0
driver = webdriver.Chrome()
driver.get("file:///C:/Users/ARUNM/Desktop/Alert1.html")
driver.maximize_window()
# This is simple alert popup
elem1 = driver.find_element_by_xpath("//*[@id='content']/p[4]/button")
elem1.click()
alt_elem1 = Alert(driver)
assert "A simple Alert" in alt_elem1.text
alt_elem1.accept()

# This alert discmiss ction
elem2 = driver.find_element_by_xpath("//*[@id='content']/p[8]/button")
elem2.click()
alt_elem2 = Alert(driver)
assert "Confirm pop up with OK and Cancel button" in alt_elem2.text
alt_elem2.dismiss()

elem3 = driver.find_element_by_xpath("//*[@id='content']/p[11]/button")
elem3.click()

alt_elem3 = Alert(driver)
# print(alt_elem3.text)
assert "Do you like toolsqa?" in alt_elem3.text
sleep(4)
alt_elem3.dismiss()

driver.quit()

# assert "Google" in driver.page_source
# print("Assert pass")
# driver.close()
Пример #24
0

#Trocar para Alerta Alerta
alert = browser.switch_to.alert
alert.accept()
## Avançado de Alert
try:
    WebDriverWait(browser, 3).until(EC.alert_is_present(), 'Timed out waiting for PA creation ' + 'confirmation popup to appear.')
    alert = browser.switch_to.alert
    alert.accept()
    print("alert accepted")
except TimeoutException:
    print("no alert")
#Operando com Alert
alert = Alert(driver)   # Instancia a classe alert
alert.dismiss()     # Clica no Botão Cancelar
alert.accept() # Confirma o alerta
alert.text      # Pega o texto presente na caixa de Alerta
alert.send_keys("Texto a ser enviado para o Alert")
# Login com Alert
driver.switch_to.alert.authenticate('usuario', "senha")
Alert(driver).accept()




#Trocar de Iframe
driver.switch_to.frame("frame3")  #Nome do Iframe
driver.switch_to.default_content()     #Volta ao Frame Padrão
driver.switch_to.frame(2)       #Selecionando o Frame por Número
driver.switch_to.frame(driver.find_element_by_tag_name("iframe")[1]);       #Selecionando Iframe por busca de "Find"
Пример #25
0
from selenium.webdriver import Firefox
from selenium.webdriver.common.alert import Alert

browser = Firefox()

browser.get('http://selenium.dunossauro.live/aula_11_a')

browser.find_element_by_id('alert').click()

alerta = Alert(browser) # Liadar com erros

alerta = browser.switch_to.alert # Não lida com erros


alerta.accept() # Confirma, clica no OK
alerta.dismiss() # Confirma, clica no OK
 def dismiss(self):
     alert = Alert(self.driver)
     alert.dismiss()
Пример #27
0
from selenium import webdriver
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.expected_conditions import alert_is_present
from selenium.webdriver.support.select import Select

browser = webdriver.Chrome()
browser.get("https://www.techstepacademy.com/training-ground")

# Click an Alert
alert = Alert(browser)
# Gets Text from the alert
alert.text
# Accept or Dismiss an Alert
alert.accept()
alert.dismiss()

# Wait, until something has happened
WebDriverWait(browser,
              10).until(alert_is_present())  # This is an explicit wait
print("An Alert Appeared")

# Selection Box
sel = browser.find_element_by_id('sel1')
my_select = Select(sel)
# Options
my_select.options
# Select by visible Text
my_select.select_by_visible_text('Beets')
Пример #28
0
        seat_number_input = driver.find_element_by_id(
            "ctl00_ContentPlaceHolder1_txtSeatno")

        mothers_name_input = driver.find_element_by_id(
            "ctl00_ContentPlaceHolder1_txtMother")

        submit_btn = driver.find_element_by_id(
            "ctl00_ContentPlaceHolder1_btnSubmit")

        seat_number_input.clear()
        mothers_name_input.clear()
        mothers_name_input.send_keys(MOTHER_NAME)
        seat_number_input.send_keys(i)
        submit_btn.click()
        a = Alert(driver)
        a.dismiss()

except Exception as e:
    sleep(5)
    print("Result Found")
    print(f"Seat Number: {i}")
    print(
        driver.find_element_by_xpath(
            "/html/body/form/div[5]/div[2]/span/div/table[1]/tbody/tr[2]/td[1]"
        ).text)
    print(
        driver.find_element_by_xpath(
            "/html/body/form/div[5]/div[2]/span/div/table[3]/tbody/tr[28]/td[1]"
        ).text.strip())

finally:
Пример #29
0
            print('해당 주차 강의를 다운로드 합니다. 완료될 때까지 기다려주세요.')
            print('- 온라인 출석부에서 해당 동영상 강의 열람 횟수가 1회 증가합니다.')
            vod_list = week.find_all('li',
                                     {'class': 'activity vod modtype_vod'})
            for i in range(0, len(vod_list)):
                vodLink = re.search(r'https://.*\d*', str(vod_list[i])).group()
                vodLink = vodLink[:vodLink.find('"')]
                vodLink = vodLink.replace('view', 'viewer')
                if (vodLink.find(
                        'https://plato.pusan.ac.kr/mod/vod/viewer.php?') == -1
                    ):
                    continue
                driver.get(vodLink)
                try:
                    da = Alert(driver)
                    da.dismiss()
                except:
                    print("", end='')
                html = driver.page_source
                soup = BS4(html, 'html.parser')
                source = str(soup.find_all('source'))
                source = source[source.find('https'):source.find('m3u8') + 4]
                fileDownload(
                    courseName + week.attrs['aria-label'] + '_' + str(i + 1),
                    source)

    driver.get('https://plato.pusan.ac.kr/')
    driver.find_element_by_xpath(
        '//*[@id="page-header"]/div[1]/div[2]/ul/li[2]/a').click()
    driver.quit()
    exit()
Пример #30
0
def dismissAlert(driver):
    alt = Alert(driver)
    print(alt.text)
    alt.dismiss()
Пример #31
0
from selenium.webdriver import Firefox
from selenium.webdriver.common.alert import Alert

browser = Firefox()

browser.get('http://selenium.dunossauro.live/aula_11_a')

browser.find_element_by_id('prompt').click()

alerta = Alert(browser)

alerta.accept()
alerta.dismiss()
Пример #32
0
select=Select(selectLang)
optionList=select.options
select.select_by_index(1)
select.select_by_value=('python')
select.select_by_visible_text('PYTHON')
option=select.first_selected_option
print(option.get_attribute('value'))

wd.find_element_by_id('alert').click()
alt=wd.switch_to.alert
alt.accept()

#wd.find_element_by_id('alert').click()
wd.execute_script('alert("ok")')
alt=Alert(wd)
alt.dismiss()

script='''
var callback=arguments[arguments.length-1];
window.setTimeout(function(){callback('timeout')},3000);
'''

result=wd.execute_async_script(script)
print(result)

try:
    #wd.find_element_by_id('alert').click()
    result=WebDriverWait(wd,5).until(expected_conditions.alert_is_present(),"Timed out waiting for alert")
    print(result)
    alt=Alert(wd)
    print(alt.text)