From 8fcda848ab171a135308320788c760315a53c852 Mon Sep 17 00:00:00 2001 From: Wesley Kerfoot Date: Mon, 20 May 2019 21:22:36 -0400 Subject: [PATCH] Use driver.implicitly_wait instead of sleeping everywhere --- deletefb/deletefb.py | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/deletefb/deletefb.py b/deletefb/deletefb.py index 0fe5b30..4ae28e0 100755 --- a/deletefb/deletefb.py +++ b/deletefb/deletefb.py @@ -3,13 +3,11 @@ from seleniumrequests import Chrome from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.chrome.options import Options -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC -from selenium.webdriver.common.by import By - import time import argparse +MAX_POSTS = 5000 + def run_delete(): parser = argparse.ArgumentParser() parser.add_argument("-E", @@ -55,6 +53,7 @@ def delete_posts(user_email_address=None, chrome_options.add_argument("start-maximized") driver = Chrome(chrome_options=chrome_options) + driver.implicitly_wait(10) driver.get("https://facebook.com") @@ -73,25 +72,16 @@ def delete_posts(user_email_address=None, loginelement = driver.find_element_by_id(login) loginelement.click() - time.sleep(3) - driver.get(user_profile_url) - time.sleep(3) - for _ in range(5100): + for _ in range(MAX_POSTS): post_button_sel = "_4xev" timeline_element = driver.find_element_by_class_name(post_button_sel) actions = ActionChains(driver) actions.move_to_element(timeline_element).click().perform() - menu_selector = "#globalContainer > div.uiContextualLayerPositioner.uiLayer > div" - - #time.sleep(3) - - menu = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, menu_selector))) - + menu = driver.find_element_by_css_selector("#globalContainer > div.uiContextualLayerPositioner.uiLayer > div") actions.move_to_element(menu).perform() - try: delete_button = menu.find_element_by_xpath("//a[@data-feed-option-name=\"FeedDeleteOption\"]") except: @@ -99,9 +89,7 @@ def delete_posts(user_email_address=None, actions.move_to_element(delete_button).click().perform() - time.sleep(4) - confirmation_button = driver.find_element_by_class_name("layerConfirm") driver.execute_script("arguments[0].click();", confirmation_button) - time.sleep(3) + time.sleep(5) driver.refresh()