def get_replay_helper(self, replay_id, background): if background: fast_forward_btn = self.driver.find_element_by_css_selector("[data-action='ff']") # Iterate through up to MAX_GAME_LENGTH turns for i in range(MAX_GAME_LENGTH): fast_forward_btn.click() # Once we've skipped through at least 100 turns, check if the # battle has ended every 50 turns if i > 100 & i % 50 == 0: log = self.driver.find_element_by_css_selector(".battle-log") if "won the battle" in log.text: return log.text # If the game hasn't ended after MAX_GAME_LENGTH turns, throw an exception raise EndOfLogException("Failed to reach end of log file") else: # Open the turn picking dialogue pick_turn_btn = self.driver.find_element_by_css_selector("[data-action='ffto']") pick_turn_btn.click() # Pick the last turn alert = Alert(self.driver) alert.send_keys(str(-1)) alert.accept() log = self.driver.find_element_by_css_selector(".battle-log") return log.text
def get_replay_helper(self, replay_id, background): if background: fast_forward_btn = self.driver.find_element_by_css_selector( "[data-action='ff']") # Iterate through up to MAX_GAME_LENGTH turns for i in range(MAX_GAME_LENGTH): fast_forward_btn.click() # Once we've skipped through at least 100 turns, check if the # battle has ended every 50 turns if i > 100 & i % 50 == 0: log = self.driver.find_element_by_css_selector( ".battle-log") if "won the battle" in log.text: return log.text # If the game hasn't ended after MAX_GAME_LENGTH turns, throw an exception raise EndOfLogException("Failed to reach end of log file") else: # Open the turn picking dialogue pick_turn_btn = self.driver.find_element_by_css_selector( "[data-action='ffto']") pick_turn_btn.click() # Pick the last turn alert = Alert(self.driver) alert.send_keys(str(-1)) alert.accept() log = self.driver.find_element_by_css_selector(".battle-log") return log.text
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
def login_to_reportronic(self): """Authenticate user with given username and password from config.json. """ self.logger.info('Trying to log in to Reportronic.') self.driver.get(self.url) prompt = Alert(self.driver) prompt.send_keys(self.user + Keys.TAB + self.password) prompt.accept()
def alert_sendkeys(self, string): """在弹出框中输入内容""" try: ele = self.alert_is_pressent() ele.send_keys(string) except: try: alert = self.driver.switch_to_alert() alert.send_keys(string) except: try: alert = Alert(self.driver) alert.send_keys(string) except: raise ("not find alert")
def test_alert_three(self): third_alert_btn_path = '//*[@id="content"]/div/ul/li[3]/button' alert_results_path = '//*[@id="result"]' expected_text_in_alert = 'You entered: How is my spaghetti code looks like?' driver = self.driver driver.get(self.alerts_url) btn_alert = driver.find_element_by_xpath(third_alert_btn_path).click() alert = Alert(driver) print("Alert shows following message: " + alert.text) alert.send_keys('How is my spaghetti code looks like?') alert.accept() message = driver.find_element_by_xpath(alert_results_path).text self.assertEqual(expected_text_in_alert, message, f'Message should say: {message}') print(message)
def _auth_firefox_proxy(driver): driver.set_page_load_timeout(10) try: driver.get('http://icanhazip.com') except: from selenium.webdriver.common.alert import Alert time.sleep(3) alert = Alert(driver) time.sleep(3) #alert.authenticate(CRAWLERA_APIKEY, '') alert.send_keys(CRAWLERA_APIKEY + '\n') alert.accept() #alert.send_keys('\t') #alert.send_keys('\n') #import pdb; pdb.set_trace() driver.set_page_load_timeout(30)
def stress_test(username, password, key, max_count): emailInput.send_keys(username) passwordInput.send_keys(password) loginButton.click() driver.get(chatUrl) time.sleep(3.5) alert = Alert(driver) alert.send_keys(key) alert.accept() message_input = driver.find_element_by_xpath("//*[@id='messageInput']") send_button = driver.find_element_by_xpath("//*[@id='sendButton']") count = 1 while count <= max_count: message_input.send_keys("This is Message number " + str(count)) send_button.click() clear() print("Sending message " + str(count) + " / " + str(max_count)) count += 1
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_alert(): log = Log("UI测试").get_logger() driver = webdriver.Firefox() driver.set_window_size(960, 540) # 设置窗口大小 driver.get('http://sahitest.com/demo/promptTest.htm') time.sleep(2) driver.find_element_by_name('b1').click() # a1 = driver.switch_to.alert # 通过switch_to.alert切换到alert a1 = Alert(driver) # 直接实例化Alert对象 time.sleep(2) log.info(a1.text) # 获取alert文本内容,对有信息显示的alert框 a1.send_keys('send some words to alert!') # 往prompt型alert中传入字符串 time.sleep(2) a1.accept() # 等同于点击“确认”或“OK” # a1.dismiss() # 等同于点击“取消”或“Cancel” log.info(driver.find_element_by_name('t1').get_attribute('value')) driver.quit()
def type_message_and_get_prompt_text_and_close_prompt(context): try: # wait for Prompt to be displayed context.driver.wait.until(EC.alert_is_present()) # store Prompt in a variable for reuse alert = Alert(context.driver) # type a message alert.send_keys("Anna") # store the Prompt text in a variable prompt_text = alert.text print(f'Prompt shows following message: ' + prompt_text) # press the OK button to accept Prompt alert.accept() print("Prompt accepted") except TimeoutException: print("No Prompt")
def alert_send_keys(self, text): alert = Alert(self.driver) alert.send_keys(text)
""" PROMPT ------- Aparece um texto, um campo a ser preenchido, e dois botões "OK" (accept) e "Cancelar" (dismiss) Prompt é tratado como alerta """ from selenium.webdriver import Firefox from selenium.webdriver.common.alert import Alert from time import sleep b = Firefox() url = 'https://selenium.dunossauro.live/aula_11_a' b.get(url) sleep(10) b.find_element_by_id('prompt').click() # Clica no botão de id 'alert' prompt = Alert(b) prompt.send_keys('Pedro') print(prompt.text) sleep(10) prompt.accept() # Aperta em OK # prompt.dismiss() # Aperta em Cancelar # OBS: Posso dar switch_to para outros locais: .window, .frame, etc.
from selenium.webdriver.common.alert import Alert from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.expected_conditions import ( visibility_of_element_located, alert_is_present) from selenium.webdriver.common.by import By url = 'https://selenium.dunossauro.live/aula_11_a.html' browser = Firefox() browser.get(url) wdw = WebDriverWait(browser, 30) wdw.until(visibility_of_element_located((By.ID, 'all'))) browser.find_element_by_id('all').click() alert = Alert(browser) wdw.until(alert_is_present()) alert.accept() # alert alert.send_keys('Rafael') # prompt alert.accept() # prompt alert.accept() # confirm browser.find_element_by_id('alertd').click() alertd = wdw.until(alert_is_present()) # Esperar o alert, retorna o alerta alertd.accept() browser.quit()
def sendValueToAlert(driver, value): alt = Alert(driver) print(alt.text) alt.send_keys(value) alt.accept()
from selenium.webdriver import Firefox from time import sleep from selenium.webdriver.common.alert import Alert browser = Firefox() browser.get('http://selenium.dunossauro.live/aula_11_a') sleep(1) browser.find_element_by_id('prompt').click() alerta = Alert(browser) alerta.send_keys('Matheus') #alerta.accept() # confirma, clicka no ok
""" Botão final - all """ from selenium.webdriver import Firefox from selenium.webdriver.common.alert import Alert from time import sleep b = Firefox() url = 'https://selenium.dunossauro.live/aula_11_a' b.get(url) sleep(10) b.find_element_by_id('all').click() alerta = Alert(b) # Note que aqui vou usar só um Alert para diferentes tipos de alerta alerta.accept() # alerta alerta.send_keys('Pedro') # prompt alerta.accept() # prompt alerta.accept() # confirma
def one_voter_votes(self, voter, direct=False): browser = self.browser if direct: url = voter["election_page_url"] browser.get(settings.SERVER_URL + "/vote.html#" + urlencode({"url": url})) else: # Bob has received 2 emails containing an invitation to vote and all necessary credentials (election page URL, username, password). He goes to the election page URL. browser.get(voter["election_page_url"]) wait_a_bit() # He clicks on the "Start" button start_button_expected_label = "Start" start_button_css_selector = "#main button" start_button_element = wait_for_element_exists_and_contains_expected_text( browser, start_button_css_selector, start_button_expected_label, settings.EXPLICIT_WAIT_TIMEOUT) start_button_element.click() wait_a_bit() # A loading screen appears, then another screen appears. He clicks on the "Here" button here_button_expected_label = "here" here_button_css_selector = "#input_code button" here_button_element = wait_for_element_exists_and_contains_expected_text( browser, here_button_css_selector, here_button_expected_label, settings.EXPLICIT_WAIT_TIMEOUT) here_button_element.click() wait_a_bit() # A modal opens (it is an HTML modal created using Window.prompt()), with an input field. He types his credential. credential_prompt = Alert(browser) credential_prompt.send_keys(voter["credential"]) credential_prompt.accept() wait_a_bit() # A new screen appears, which has a title "Step 2/6: Answer to questions", and a content: # "Question 1?" # "Question #1 of 1 — select between 1 and 2 answer(s)" # [ ] "Answer 1" # [ ] "Answer 2" # [Next] # (where "[ ]" is a checkbox, and [Next] is a button) # He fills his votes to each answer of the question answers_css_selector = "#question_div input[type=checkbox]" answers_elements = wait_for_elements_exist( browser, answers_css_selector, settings.EXPLICIT_WAIT_TIMEOUT ) # or we could use find_element_by_xpath("//div[@id='question_div']/input[@type='checkbox'][2]") assert len(answers_elements) is 2 question1_answer1_element = answers_elements[0] question1_answer2_element = answers_elements[1] voter_vote_to_question_1_answer_1 = voter["votes"]["question1"][ "answer1"] voter_vote_to_question_1_answer_2 = voter["votes"]["question1"][ "answer2"] voter_vote_to_question_1_answer_1_is_checked = question1_answer1_element.get_attribute( 'checked') voter_vote_to_question_1_answer_2_is_checked = question1_answer2_element.get_attribute( 'checked') assert voter_vote_to_question_1_answer_1_is_checked is None assert voter_vote_to_question_1_answer_2_is_checked is None if voter_vote_to_question_1_answer_1: question1_answer1_element.click() if voter_vote_to_question_1_answer_2: question1_answer2_element.click() wait_a_bit() # He clicks on the "Next" button next_button_expected_label = "Next" next_button_css_selector = "#question_div button" next_button_element = wait_for_element_exists_and_contains_expected_text( browser, next_button_css_selector, next_button_expected_label, settings.EXPLICIT_WAIT_TIMEOUT) next_button_element.click() wait_a_bit() """ A new screen appears, showing: Step 3/6: Review and encrypt Question 1? - Answer 1 Your ballot has been successfully encrypted, but has not been cast yet! Your smart ballot tracker is sLRilXoAYcodIrjWrOqPrVXLNlRyCJAqFeeHZ4WCajU We invite you to save it in order to check later that it is taken into account. [Continue] [Restart] """ # He remembers the smart ballot tracker that is displayed. smart_ballot_tracker_css_selector = "#ballot_tracker" smart_ballot_tracker_element = wait_for_element_exists_and_has_non_empty_content( browser, smart_ballot_tracker_css_selector, settings.EXPLICIT_WAIT_TIMEOUT) smart_ballot_tracker_value = smart_ballot_tracker_element.get_attribute( 'innerText') assert len(smart_ballot_tracker_value) > 5 voter["smart_ballot_tracker"] = smart_ballot_tracker_value # He clicks on the "Continue" button next_button_expected_label = "Continue" next_button_css_selector = "#div_submit input[type=submit][value='" + next_button_expected_label + "']" next_button_element = browser.find_element_by_css_selector( next_button_css_selector) next_button_element.click() wait_a_bit() # He types his voter username and password, and submits the form username_field_css_selector = "#main input[name=username]" username_field_element = wait_for_element_exists( browser, username_field_css_selector, settings.EXPLICIT_WAIT_TIMEOUT) username_field_element.send_keys(voter["username"]) password_field_css_selector = "#main input[name=password]" password_field_element = browser.find_element_by_css_selector( password_field_css_selector) password_field_element.send_keys(voter["password"]) wait_a_bit() password_field_element.submit() wait_a_bit() # He checks that the smart ballot tracker value that appears on screen is the same as the one he noted smart_ballot_tracker_verification_css_selector = "#ballot_tracker" smart_ballot_tracker_verification_element = wait_for_element_exists_and_has_non_empty_content( browser, smart_ballot_tracker_verification_css_selector, settings.EXPLICIT_WAIT_TIMEOUT) smart_ballot_tracker_verification_value = smart_ballot_tracker_verification_element.get_attribute( 'innerText') assert len(smart_ballot_tracker_verification_value) > 5 assert smart_ballot_tracker_verification_value == voter[ "smart_ballot_tracker"] # He clicks on the "I cast my vote" button submit_button_css_selector = "#main input[type=submit]" submit_button_element = browser.find_element_by_css_selector( submit_button_css_selector) submit_button_element.click()
from time import sleep from selenium.webdriver import Firefox from selenium.webdriver.common.alert import Alert browser = Firefox() browser.get('http://selenium.dunossauro.live/aula_11_a') sleep(3) alerta = Alert(browser) # alerta = browser.switch_to.alert # NoAlertPresentException browser.find_element_by_id('all').click() alerta.accept() # alerta alerta.send_keys('Eduardo') # prompt alerta.accept() # prompt alerta.accept() # confirm
from selenium.webdriver.common.alert import Alert from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.expected_conditions import ( visibility_of_element_located, alert_is_present) from selenium.webdriver.common.by import By url = 'https://selenium.dunossauro.live/aula_11_a.html' browser = Firefox() browser.get(url) wdw = WebDriverWait(browser, 30) wdw.until(visibility_of_element_located((By.ID, 'prompt'))) browser.find_element_by_id('prompt').click() alert = Alert(browser) wdw.until(alert_is_present()) print(alert.text) alert.send_keys('digitando no prompt') alert.accept() browser.find_element_by_id('prompt').click() wdw.until(alert_is_present()) print(alert.text) alert.dismiss()
def one_voter_votes(self, voter, direct=False): browser = self.browser if direct: url = voter["election_page_url"] browser.get(settings.SERVER_URL + "/vote.html#" + urlencode({"url": url})) else: # Bob has received 2 emails containing an invitation to vote and all necessary credentials (election page URL, username, password). He goes to the election page URL. browser.get(voter["election_page_url"]) wait_a_bit() # He clicks on the "Start" button start_button_expected_label = "Start" start_button_css_selector = "#main button" start_button_element = wait_for_element_exists_and_contains_expected_text(browser, start_button_css_selector, start_button_expected_label, settings.EXPLICIT_WAIT_TIMEOUT) start_button_element.click() wait_a_bit() # A loading screen appears, then another screen appears. He clicks on the "Here" button here_button_expected_label = "here" here_button_css_selector = "#input_code button" here_button_element = wait_for_element_exists_and_contains_expected_text(browser, here_button_css_selector, here_button_expected_label, settings.EXPLICIT_WAIT_TIMEOUT) here_button_element.click() wait_a_bit() # A modal opens (it is an HTML modal created using Window.prompt()), with an input field. He types his credential. credential_prompt = Alert(browser) credential_prompt.send_keys(voter["credential"]) credential_prompt.accept() wait_a_bit() # A new screen appears, which has a title "Step 2/6: Answer to questions", and a content: # "Question 1?" # "Question #1 of 1 — select between 1 and 2 answer(s)" # [ ] "Answer 1" # [ ] "Answer 2" # [Next] # (where "[ ]" is a checkbox, and [Next] is a button) # He fills his votes to each answer of the question answers_css_selector = "#question_div input[type=checkbox]" answers_elements = wait_for_elements_exist(browser, answers_css_selector, settings.EXPLICIT_WAIT_TIMEOUT) # or we could use find_element_by_xpath("//div[@id='question_div']/input[@type='checkbox'][2]") assert len(answers_elements) is 2 question1_answer1_element = answers_elements[0] question1_answer2_element = answers_elements[1] voter_vote_to_question_1_answer_1 = voter["votes"]["question1"]["answer1"] voter_vote_to_question_1_answer_2 = voter["votes"]["question1"]["answer2"] voter_vote_to_question_1_answer_1_is_checked = question1_answer1_element.get_attribute('checked') voter_vote_to_question_1_answer_2_is_checked = question1_answer2_element.get_attribute('checked') assert voter_vote_to_question_1_answer_1_is_checked is None assert voter_vote_to_question_1_answer_2_is_checked is None if voter_vote_to_question_1_answer_1: question1_answer1_element.click() if voter_vote_to_question_1_answer_2: question1_answer2_element.click() wait_a_bit() # He clicks on the "Next" button next_button_expected_label = "Next" next_button_css_selector = "#question_div button" next_button_element = wait_for_element_exists_and_contains_expected_text(browser, next_button_css_selector, next_button_expected_label, settings.EXPLICIT_WAIT_TIMEOUT) next_button_element.click() wait_a_bit() """ A new screen appears, showing: Step 3/6: Review and encrypt Question 1? - Answer 1 Your ballot has been successfully encrypted, but has not been cast yet! Your smart ballot tracker is sLRilXoAYcodIrjWrOqPrVXLNlRyCJAqFeeHZ4WCajU We invite you to save it in order to check later that it is taken into account. [Continue] [Restart] """ # He remembers the smart ballot tracker that is displayed. smart_ballot_tracker_css_selector = "#ballot_tracker" smart_ballot_tracker_element = wait_for_element_exists_and_has_non_empty_content(browser, smart_ballot_tracker_css_selector, settings.EXPLICIT_WAIT_TIMEOUT) smart_ballot_tracker_value = smart_ballot_tracker_element.get_attribute('innerText') assert len(smart_ballot_tracker_value) > 5 voter["smart_ballot_tracker"] = smart_ballot_tracker_value # He clicks on the "Continue" button next_button_expected_label = "Continue" next_button_css_selector = "#div_submit input[type=submit][value='" + next_button_expected_label + "']" next_button_element = browser.find_element_by_css_selector(next_button_css_selector) next_button_element.click() wait_a_bit() # He types his voter username and password, and submits the form username_field_css_selector = "#main input[name=username]" username_field_element = wait_for_element_exists(browser, username_field_css_selector, settings.EXPLICIT_WAIT_TIMEOUT) username_field_element.send_keys(voter["username"]) password_field_css_selector = "#main input[name=password]" password_field_element = browser.find_element_by_css_selector(password_field_css_selector) password_field_element.send_keys(voter["password"]) wait_a_bit() password_field_element.submit() wait_a_bit() # He checks that the smart ballot tracker value that appears on screen is the same as the one he noted smart_ballot_tracker_verification_css_selector = "#ballot_tracker" smart_ballot_tracker_verification_element = wait_for_element_exists_and_has_non_empty_content(browser, smart_ballot_tracker_verification_css_selector, settings.EXPLICIT_WAIT_TIMEOUT) smart_ballot_tracker_verification_value = smart_ballot_tracker_verification_element.get_attribute('innerText') assert len(smart_ballot_tracker_verification_value) > 5 assert smart_ballot_tracker_verification_value == voter["smart_ballot_tracker"] # He clicks on the "I cast my vote" button submit_button_css_selector = "#main input[type=submit]" submit_button_element = browser.find_element_by_css_selector(submit_button_css_selector) submit_button_element.click()
from selenium.webdriver import Firefox from time import sleep from selenium.webdriver.common.alert import Alert browser = Firefox() browser.get('http://selenium.dunossauro.live/aula_11_a') sleep(2) alerta = Alert(browser) browser.find_element_by_id('all').click() alerta.accept() # alerta alerta.send_keys('Matheus') # prompt alerta.accept() # prompt alerta.accept() # confirm
newgamebtn.click() clearbtn.click() sleep(10) #TEST CASE 4 with webdriver.Firefox() as driver: wait = WebDriverWait(driver, 10) driver.get("http://127.0.0.1:3000") mail2self = driver.find_elements_by_class_name('MailSelfButton')[0] mail2self.click() sleep(10) wait.until(expected_conditions.alert_is_present()) alert = Alert(driver) alert.send_keys("*****@*****.**") sleep(10) alert.accept() #TEST CASE 5 with webdriver.Firefox() as driver: wait = WebDriverWait(driver, 10) driver.get("http://127.0.0.1:3000") canvas = driver.find_element_by_class_name("TheCanvas") drawing = ActionChains(driver)\ .click_and_hold(canvas)\ .move_by_offset(30, 25)\ .move_by_offset(20, -20)\ .move_by_offset(-70, 25)\ .release()
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" # Limpar Todos os pdfs da pasta atual, Novo dirtorio passe o path completo
novo_dia = p.driver.find_element_by_xpath(xpath) novo_dia_texto = novo_dia.text.replace('__', '').strip() if len(novo_dia_texto) == 0: break col += 1 p.logger.info( f'Uma nova data será inserida na coluna {col-1}.') # é preciso clicar na célula correspondente ao dia para # ativar um prompt javascript e preencher com o dia try: novo_dia.click() alert = Alert(p.driver) alert.send_keys(dia) alert.accept() p.logger.info(f'Inserido dia {dia} no diário.') except: p.errorquit( f'Não foi possível inserir dia {dia} no diário.') sleep(1) # clica no checkbox correspondente ao dia para # marcar presença a todos os alunos, por padrão try: box_dia = p.driver.find_element_by_id('day_' + str(col - 1)) box_dia.click() p.logger.info('Marcando presença para os estudantes.') except:
def step_switch_to_alert(self, value1, value2): prompt = Alert(self.driver) prompt.send_keys(value1) prompt.send_keys(value2) prompt.accept()
from selenium.webdriver.common.alert import Alert """ Vamos levantar um http server com o comando abaixo: python -m http.server --bind 127.0.0.1 8083 """ driver = webdriver.Chrome() driver.maximize_window # windows path driver.get("http://127.0.0.1:8083/html/prompt.html") # linux path # driver.get("http://127.0.0.1:8083/alert_tests/html/prompt.html") driver.implicitly_wait(10) test = driver.find_element("id", "prompt") test.click() sleep(5) alert = Alert(driver) print(alert.text) sleep(3) nome = "Reinaldo Mateus" alert.send_keys(nome) alert.accept() test2 = driver.find_element("id", "demo") assert test2.text == nome sleep(10) driver.quit()
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)
click_me.click() sleep(3) driver.switch_to.alert # alert() --Java alert_text = alert.text # just getText() --Java print(alert_text) alert.accept() sleep(4) click_me = driver.find_element_by_xpath("(//button[text()='Click me!'])[2]") click_me.click() sleep(3) driver.switch_to.alert # alert() --Java alert.dismiss() sleep(4) click_me = driver.find_element_by_xpath( "(//button[text()='Click for Prompt Box'])") click_me.click() sleep(3) driver.switch_to.alert # alert() --Java alert.send_keys("Hello") alert.accept() sleep(8) driver.close() driver.quit()
alert = wait.until(expected_conditions.alert_is_present()) # 将警告中的文本存储到变量 alert_text = alert.text # 模拟点击确定按钮 alert.accept() # js的confirm确认框 browser.find_element_by_link_text("xxx").click() wait.until(expected_conditions.alert_is_present()) alert = browser.switch_to.alert alert_text = alert.text alert.dismiss() # js的prompt提示框 alert = Alert(browser) alert.send_keys("xxx") alert.accept() # http代理设置 Proxy = "host:port" webdriver.DesiredCapabilities.CHROME["proxy"] = { "httpProxy": Proxy, "ftpProxy": Proxy, "sslProxy": Proxy, "proxyType": "MANUAL", } with webdriver.Chrome() as driver: driver.get("xxx.com") # 页面加载策略
#Masterfully crafted by Cameron Lewis #userNamme = f"dai\\cameron.lewis" userNamme = input("Enter your DAI or ODS account name, including the DAI\\ or ODSDAI\\: ") passWurd = getpass.getpass(prompt='What is your ODS Grant Access Password?: ') print('"""""""""""\n Please wait while your access is granted. You should receive your usual notification email if this is successful.\n"""""""""""\n') firefox_options = Options() firefox_options.add_argument("--headless") driver = webdriver.Firefox(options=firefox_options) driver.get("http://odssysmonweb.odsdai.netdai.com/grantaccess") wait = WebDriverWait(driver, 10) WebDriverWait(driver, 1).until(ec.alert_is_present()) alert = Alert(driver) #alert.send_keys(f"dai\\cameron.lewis{Keys.TAB}{input('What is your ODS Grant Access Password?')}{Keys.ENTER}") alert.send_keys(f"{userNamme}{Keys.TAB}{passWurd}{Keys.ENTER}") actions = ActionChains(driver) #Server: wait.until(ec.visibility_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[1]/div[1]/div[2]/div/form/div[1]/div/div/button"))).click() wait.until(ec.visibility_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[1]/div[1]/div[2]/div/form/div[1]/div/div/div/div[1]/input"))).send_keys("ODSUNITEDDBLS") wait.until(ec.visibility_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[1]/div[1]/div[2]/div/form/div[1]/div/div/div/ul/li[253]/a"))).send_keys(Keys.ENTER) wait.until(ec.visibility_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[1]/div[1]/div[2]/div/form/div[1]/div/div/div/ul/li[253]/a"))).send_keys(Keys.TAB) #Products: wait.until(ec.visibility_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[1]/div[1]/div[2]/div/form/div[2]/div/div"))).click() wait.until(ec.visibility_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[1]/div[1]/div[2]/div/form/div[2]/div/div/div/div[1]/input"))).send_keys("OTHER") wait.until(ec.visibility_of_element_located((By.XPATH, "/html/body/div[2]/div[2]/div[1]/div[1]/div[2]/div/form/div[2]/div/div/div/ul/li[16]/a"))).send_keys(Keys.ENTER, Keys.TAB) #Reason: