@ -103,27 +103,30 @@ def delete_posts(user_email_address,
driver . get ( user_profile_url )
driver . get ( user_profile_url )
for _ in range ( MAX_POSTS ) :
for _ in range ( MAX_POSTS ) :
post_button_sel = " _4xev "
try :
timeline_element = driver . find_element_by_class_name ( post_button_sel )
post_button_sel = " _4xev "
actions = ActionChains ( driver )
timeline_element = driver . find_element_by_class_name ( post_button_sel )
actions . move_to_element ( timeline_element ) . click ( ) . perform ( )
actions = ActionChains ( driver )
actions . move_to_element ( timeline_element ) . click ( ) . perform ( )
menu = driver . find_element_by_css_selector ( " #globalContainer > div.uiContextualLayerPositioner.uiLayer > div " )
menu = driver . find_element_by_css_selector ( " #globalContainer > div.uiContextualLayerPositioner.uiLayer > div " )
actions . move_to_element ( menu ) . perform ( )
actions . move_to_element ( menu ) . perform ( )
try :
try :
delete_button = menu . find_element_by_xpath ( " //a[@data-feed-option-name= \" FeedDeleteOption \" ] " )
delete_button = menu . find_element_by_xpath ( " //a[@data-feed-option-name= \" FeedDeleteOption \" ] " )
# FIXME Using a bare except here to avoid having to handle all possible exceptions
# FIXME Using a bare except here to avoid having to handle all possible exceptions
except :
except :
delete_button = menu . find_element_by_xpath ( " //a[@data-feed-option-name= \" HIDE_FROM_TIMELINE \" ] " )
delete_button = menu . find_element_by_xpath ( " //a[@data-feed-option-name= \" HIDE_FROM_TIMELINE \" ] " )
actions . move_to_element ( delete_button ) . click ( ) . perform ( )
actions . move_to_element ( delete_button ) . click ( ) . perform ( )
confirmation_button = driver . find_element_by_class_name ( " layerConfirm " )
confirmation_button = driver . find_element_by_class_name ( " layerConfirm " )
# Facebook would not let me get focus on this button without some custom JS
# Facebook would not let me get focus on this button without some custom JS
driver . execute_script ( " arguments[0].click(); " , confirmation_button )
driver . execute_script ( " arguments[0].click(); " , confirmation_button )
except :
pass
# Required to sleep the thread for a bit after using JS to click this button
# Required to sleep the thread for a bit after using JS to click this button
time . sleep ( 5 )
time . sleep ( 5 )