Python selenium.common.exceptions.ElementNotVisibleException() Examples
The following are 13
code examples of selenium.common.exceptions.ElementNotVisibleException().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
selenium.common.exceptions
, or try the search function
.
Example #1
Source File: unfriend_util.py From FacebookPy with GNU General Public License v3.0 | 6 votes |
def confirm_unfriend(browser): """ Deal with the confirmation dialog boxes during an unfollow """ attempt = 0 while attempt < 3: try: attempt += 1 button_xp = "//button[text()='Unfollow']" # "//button[contains( # text(), 'Unfollow')]" unfollow_button = browser.find_element_by_xpath(button_xp) if unfollow_button.is_displayed(): click_element(browser, Settings, unfollow_button) sleep(2) break except (ElementNotVisibleException, NoSuchElementException) as exc: # prob confirm dialog didn't pop up if isinstance(exc, ElementNotVisibleException): break elif isinstance(exc, NoSuchElementException): sleep(1)
Example #2
Source File: unfollow_util.py From FacebookPy with GNU General Public License v3.0 | 6 votes |
def confirm_unfollow(browser): """ Deal with the confirmation dialog boxes during an unfollow """ attempt = 0 while attempt < 3: try: attempt += 1 button_xp = "//button[text()='Unfollow']" # "//button[contains( # text(), 'Unfollow')]" unfollow_button = browser.find_element_by_xpath(button_xp) if unfollow_button.is_displayed(): click_element(browser, Settings, unfollow_button) sleep(2) break except (ElementNotVisibleException, NoSuchElementException) as exc: # prob confirm dialog didn't pop up if isinstance(exc, ElementNotVisibleException): break elif isinstance(exc, NoSuchElementException): sleep(1)
Example #3
Source File: unfollow_util.py From bot with GNU General Public License v3.0 | 6 votes |
def confirm_unfollow(browser): """ Deal with the confirmation dialog boxes during an unfollow """ attempt = 0 while attempt < 3: try: attempt += 1 button_xp = read_xpath( confirm_unfollow.__name__, "button_xp" ) # "//button[contains( # text(), 'Unfollow')]" unfollow_button = browser.find_element_by_xpath(button_xp) if unfollow_button.is_displayed(): click_element(browser, unfollow_button) sleep(2) break except (ElementNotVisibleException, NoSuchElementException) as exc: # prob confirm dialog didn't pop up if isinstance(exc, ElementNotVisibleException): break elif isinstance(exc, NoSuchElementException): sleep(1)
Example #4
Source File: whatsapp.py From Simple-Yet-Hackable-WhatsApp-api with Apache License 2.0 | 5 votes |
def send_picture(self, name, picture_location, caption=None): search = self.browser.find_element_by_css_selector("._3FRCZ") search.send_keys(name+Keys.ENTER) # we will send the name to the input key box try: attach_xpath = '//*[@id="main"]/header/div[3]/div/div[2]/div' send_file_xpath = '/html/body/div[1]/div/div/div[2]/div[2]/span/div/span/div/div/div[2]/span/div/div/span' attach_type_xpath = '/html/body/div[1]/div/div/div[4]/div/header/div[3]/div/div[2]/span/div/div/ul/li[1]/button/input' # open attach menu attach_btn = self.browser.find_element_by_xpath(attach_xpath) attach_btn.click() # Find attach file btn and send screenshot path to input time.sleep(1) attach_img_btn = self.browser.find_element_by_xpath(attach_type_xpath) # TODO - might need to click on transportation mode if url doesn't work attach_img_btn.send_keys(picture_location) # get current script path + img_path time.sleep(1) if caption: caption_xpath = "/html/body/div[1]/div/div/div[2]/div[2]/span/div/span/div/div/div[2]/div/span/div/div[2]/div/div[3]/div[1]/div[2]" send_caption = self.browser.find_element_by_xpath(caption_xpath) send_caption.send_keys(caption) send_btn = self.browser.find_element_by_xpath(send_file_xpath) send_btn.click() except (NoSuchElementException, ElementNotVisibleException) as e: print(str(e)) # For sending documents
Example #5
Source File: whatsapp.py From Simple-Yet-Hackable-WhatsApp-api with Apache License 2.0 | 5 votes |
def send_document(self, name, document_location): search = self.browser.find_element_by_css_selector("._3FRCZ") search.send_keys(name+Keys.ENTER) # we will send the name to the input key box try: attach_xpath = '//*[@id="main"]/header/div[3]/div/div[2]/div' send_file_xpath = '/html/body/div[1]/div/div/div[2]/div[2]/span/div/span/div/div/div[2]/span/div/div/span' attach_type_xpath = '/html/body/div[1]/div/div/div[4]/div/header/div[3]/div/div[2]/span/div/div/ul/li[3]/button/input' # open attach menu attach_btn = self.browser.find_element_by_xpath(attach_xpath) attach_btn.click() # Find attach file btn and send screenshot path to input time.sleep(1) attach_img_btn = self.browser.find_element_by_xpath(attach_type_xpath) # TODO - might need to click on transportation mode if url doesn't work attach_img_btn.send_keys(document_location) # get current script path + img_path time.sleep(1) send_btn = self.browser.find_element_by_xpath(send_file_xpath) send_btn.click() except (NoSuchElementException, ElementNotVisibleException) as e: print(str(e)) # Clear the chat
Example #6
Source File: whatsapp.py From Simple-Yet-Hackable-WhatsApp-api with Apache License 2.0 | 5 votes |
def set_group_picture(self, group_name, picture_location): search = self.browser.find_element_by_css_selector("._3FRCZ") search.send_keys(group_name+Keys.ENTER) # we will send the group name to the input key box try: menu_xpath = '/html/body/div[1]/div/div/div[4]/div/header/div[3]/div/div[3]/div/span' group_info_xpath = '/html/body/div[1]/div/div/div[4]/div/header/div[3]/div/div[3]/span/div/ul/li[1]/div' image_input_xpath = '/html/body/div[1]/div/div/div[2]/div[3]/span/div/span/div/div/div[1]/div[1]/div[1]/div/input' zoom_out_xpath = '/html/body/div[1]/div/span[2]/div/div/div/div/div/div/span/div/div/div[1]/div[1]/div[2]/span' save_btn_xpath = '/html/body/div[1]/div/span[2]/div/div/div/div/div/div/span/div/div/div[2]/span/div/div' exit_group_info_xpath = '/html/body/div[1]/div/div/div[2]/div[3]/span/div/span/div/header/div/div[1]/button/span' # open group info menu = self.browser.find_element_by_xpath(menu_xpath) menu.click() time.sleep(1) group_info = self.browser.find_element_by_xpath(group_info_xpath) group_info.click() # find image input and send picutre path time.sleep(1) image_input = self.browser.find_element_by_xpath(image_input_xpath) image_input.send_keys(picture_location) # zoom out picture and save time.sleep(1) zoom_out = self.browser.find_element_by_xpath(zoom_out_xpath) for i in range(0, 5): zoom_out.click() save_btn = self.browser.find_element_by_xpath(save_btn_xpath) save_btn.click() # close the group info time.sleep(1) exit_group_info = self.browser.find_element_by_xpath(exit_group_info_xpath) exit_group_info.click() except (NoSuchElementException, ElementNotVisibleException) as e: print(str(e))
Example #7
Source File: whatsapp_assistant_bot.py From whatsapp-assistant-bot with MIT License | 5 votes |
def _attach_and_send_screenshot(self): # TODO - ElementNotVisibleException - this shouldn't happen but when would it # local variables for x_path elements on browser attach_xpath = '//*[@id="main"]/header/div[3]/div/div[2]/div' send_file_xpath = '/html/body/div[1]/div/div/div[2]/div[2]/span/div/span/div/div/div[2]/span[2]/div/div/span' if self.attachment_type == "img": attach_type_xpath = '/html/body/div[1]/div/div/div[4]/div/header/div[3]/div/div[2]/span/div/div/ul/li[1]/button/input' elif self.attachment_type == "cam": attach_type_xpath = '//*[@id="main"]/header/div[3]/div/div[2]/span/div/div/ul/li[2]/button' elif self.attachment_type == "doc": attach_type_xpath = '//*[@id="main"]/header/div[3]/div/div[2]/span/div/div/ul/li[3]/input' try: # open attach menu attach_btn = driver.find_element_by_xpath(attach_xpath) attach_btn.click() # Find attach file btn and send screenshot path to input time.sleep(1) attach_img_btn = driver.find_element_by_xpath(attach_type_xpath) # TODO - might need to click on transportation mode if url doesn't work attach_img_btn.send_keys(os.getcwd() + "/screenshot.png") # get current script path + img_path time.sleep(1) send_btn = driver.find_element_by_xpath(send_file_xpath) send_btn.click() except (NoSuchElementException, ElementNotVisibleException) as e: print(str(e)) send_message((str(e))) send_message("Bot failed to retrieve search content, try again...")
Example #8
Source File: basewebobject.py From avos with Apache License 2.0 | 5 votes |
def _is_element_visible(self, *locator): try: return self._get_element(*locator).is_displayed() except (Exceptions.NoSuchElementException, Exceptions.ElementNotVisibleException): return False
Example #9
Source File: captcha_input.py From recaptcha-cracker with GNU General Public License v3.0 | 4 votes |
def start(): captcha_cracker.setup() captcha_cracker.captcha_element.click_initial_checkbox() time.sleep(0.5) if captcha_cracker.captcha_correct(): captcha_cracker.num_guesses += 1 captcha_cracker.num_correct += 1 captcha_cracker.print_stats() browser_reload() while captcha_cracker.num_guesses < MAX_RUNS: try: captcha_cracker.get_new_captcha() captcha_cracker.preprocess_images() captcha_cracker.get_predictions() # matching_checkboxes = captcha_cracker.select_random_checkboxes() # uncomment to run random clicker, # comment get_predictions and select_correct_checkboxes as well if doing that matching_checkboxes = captcha_cracker.select_correct_checkboxes() time.sleep(1) # refresh the checkboxes as the urls may have changed, and we need to check the new urls captcha_cracker.refresh_checkboxes() if matching_checkboxes: if captcha_cracker.captcha_changed(): continue else: captcha_cracker.verify() captcha_cracker.num_guesses += 1 else: if captcha_cracker.captcha_changed(): captcha_cracker.verify() else: captcha_cracker.reload() captcha_cracker.num_guesses += 1 time.sleep(0.5) captcha_correct = captcha_cracker.captcha_correct() if captcha_correct: captcha_cracker.num_correct += 1 write_guesses_to_file(captcha_cracker.captcha_element.captcha, matching_checkboxes, captcha_correct) captcha_cracker.print_stats() except SameCaptchaException: browser_reload() except (ElementNotVisibleException, StaleElementReferenceException, CaptchaImageNotFoundException, CheckboxNotFoundException, InvalidElementStateException, QueryTextNotFoundException): browser_reload()
Example #10
Source File: game_pbp.py From Hockey-Scraper with GNU General Public License v3.0 | 4 votes |
def scrape_page(url): """ :param url: Game pbp url :return n pages - each have period info """ driver = webdriver.Firefox() wait = WebDriverWait(driver, 10) driver.get(url) time.sleep(8) """ for _ in range(5): driver.execute_script("window.scrollTo(0,document.body.scrollHeight)") time.sleep(.2) #['SO', 'OT', 'OT1', 'OT2', '3', '2', '1']: for period in ['3', '2', '1']: btn = '//a[@ng-click="ctrl.period = \'{}\'"]'.format(period) try: wait.until(EC.element_to_be_clickable((By.XPATH, btn))) #driver.find_element_by_xpath(btn).click() btn_elem = driver.find_element_by_xpath(btn) ActionChains(driver).move_to_element(btn_elem).click().perform() except (TimeoutException, ElementNotVisibleException, WebDriverException) as e: print(e) ### This just print the last row in the list to see if we are correctly toggling between periods soup = BeautifulSoup(driver.page_source, "lxml") plays_table = soup.find("table", {"class": "play-by-play"}) plays = plays_table.find_all("tr") print(plays[-1]) """ pg = driver.page_source driver.close() return pg
Example #11
Source File: collect_links.py From AutoCrawler with Apache License 2.0 | 4 votes |
def google(self, keyword, add_url=""): self.browser.get("https://www.google.com/search?q={}&source=lnms&tbm=isch{}".format(keyword, add_url)) time.sleep(1) print('Scrolling down') elem = self.browser.find_element_by_tag_name("body") for i in range(60): elem.send_keys(Keys.PAGE_DOWN) time.sleep(0.2) try: # You may need to change this. Because google image changes rapidly. # btn_more = self.browser.find_element(By.XPATH, '//input[@value="결과 더보기"]') # self.wait_and_click('//input[@id="smb"]') self.wait_and_click('//input[@type="button"]') for i in range(60): elem.send_keys(Keys.PAGE_DOWN) time.sleep(0.2) except ElementNotVisibleException: pass photo_grid_boxes = self.browser.find_elements(By.XPATH, '//div[@class="bRMDJf islir"]') print('Scraping links') links = [] for box in photo_grid_boxes: try: imgs = box.find_elements(By.TAG_NAME, 'img') for img in imgs: # self.highlight(img) src = img.get_attribute("src") # Google seems to preload 20 images as base64 if str(src).startswith('data:'): src = img.get_attribute("data-iurl") links.append(src) except Exception as e: print('[Exception occurred while collecting links from google] {}'.format(e)) links = self.remove_duplicates(links) print('Collect links done. Site: {}, Keyword: {}, Total: {}'.format('google', keyword, len(links))) self.browser.close() return links
Example #12
Source File: collect_links.py From AutoCrawler with Apache License 2.0 | 4 votes |
def naver(self, keyword, add_url=""): self.browser.get("https://search.naver.com/search.naver?where=image&sm=tab_jum&query={}{}".format(keyword, add_url)) time.sleep(1) print('Scrolling down') elem = self.browser.find_element_by_tag_name("body") for i in range(60): elem.send_keys(Keys.PAGE_DOWN) time.sleep(0.2) try: self.wait_and_click('//a[@class="btn_more _more"]') for i in range(60): elem.send_keys(Keys.PAGE_DOWN) time.sleep(0.2) except ElementNotVisibleException: pass photo_grid_boxes = self.browser.find_elements(By.XPATH, '//div[@class="photo_grid _box"]') print('Scraping links') links = [] for box in photo_grid_boxes: try: imgs = box.find_elements(By.CLASS_NAME, '_img') for img in imgs: # self.highlight(img) src = img.get_attribute("src") if src[0] != 'd': links.append(src) except Exception as e: print('[Exception occurred while collecting links from naver] {}'.format(e)) links = self.remove_duplicates(links) print('Collect links done. Site: {}, Keyword: {}, Total: {}'.format('naver', keyword, len(links))) self.browser.close() return links
Example #13
Source File: snapshot_learners_states.py From micromasters with BSD 3-Clause "New" or "Revised" License | 4 votes |
def test_learners_states(browser, override_allowed_hosts, seeded_database_loader, django_db_blocker, test_data): """Iterate through all possible dashboard states and save screenshots/API results of each one""" output_directory = DASHBOARD_STATES_OPTIONS.get('output_directory') os.makedirs(output_directory, exist_ok=True) use_mobile = DASHBOARD_STATES_OPTIONS.get('mobile') if use_mobile: browser.driver.set_window_size(480, 854) learners_states = LearnersStates(test_data['user']) learners_state_iter = enumerate(learners_states) match = DASHBOARD_STATES_OPTIONS.get('match') if match is not None: learners_state_iter = filter( lambda scenario: match in make_filename(scenario[0], scenario[1][1]), learners_state_iter ) LoginPage(browser).log_in_via_admin(learners_states.user, DEFAULT_PASSWORD) recreate_index() # warm the cache browser.get("/learners") for num, (run_scenario, name) in learners_state_iter: skip_screenshot = False with django_db_blocker.unblock(): learners_states.user.refresh_from_db() filename = make_filename(num, name, output_directory=output_directory, use_mobile=use_mobile) new_url = run_scenario() if not skip_screenshot: browser.get(new_url) browser.wait_until_loaded(By.CSS_SELECTOR, '.sk-hits,.no-hits') browser.wait_until_loaded(By.CLASS_NAME, 'micromasters-title') try: browser.click_when_loaded( By.CSS_SELECTOR, '.filter--company_name .Select-arrow-zone', retries=0, ) except ElementNotVisibleException: # We are trying to make the work history visible, but if it doesn't exist # there's nothing to do pass # sometimes the browser scrolls down for some reason after clicking browser.driver.execute_script("window.scrollTo(0, 0)") browser.take_screenshot(filename=filename) with django_db_blocker.unblock(): terminate_db_connections() seeded_database_loader.load_backup()