Browse Source

cleanly shut down selenium when an exception happens

pull/120/head
Wesley Kerfoot 4 years ago
parent
commit
b564aa564b
  1. 5
      deletefb/deletefb.py
  2. 10
      deletefb/quit_driver.py
  3. 4
      deletefb/tools/login.py

5
deletefb/deletefb.py

@ -6,6 +6,7 @@ from .tools.login import login
from .tools.wall import delete_posts
from .tools.conversations import traverse_conversations
from .tools.comments import delete_comments
from .quit_driver import quit_driver_and_reap_children
import argparse
import getpass
@ -116,6 +117,7 @@ def run_delete():
chrome_binary_path=args.chromebin
)
try:
if args.mode == "wall":
delete_posts(
driver,
@ -132,6 +134,9 @@ def run_delete():
else:
print("Please enter a valid mode")
sys.exit(1)
except:
if driver:
quit_driver_and_reap_children(driver)
if __name__ == "__main__":
run_delete()

10
deletefb/quit_driver.py

@ -0,0 +1,10 @@
import os
def quit_driver_and_reap_children(driver):
driver.quit()
try:
pid = True
while pid:
pid = os.waitpid(-1, os.WNOHANG)
except ChildProcessError:
pass

4
deletefb/tools/login.py

@ -1,6 +1,7 @@
from .chrome_driver import get_webdriver, setup_selenium
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.chrome.options import Options
from ..quit_driver import quit_driver_and_reap_children
import time
@ -42,6 +43,7 @@ def login(user_email_address,
driver_path = get_webdriver(chrome_binary_path)
driver = setup_selenium(driver_path, chrome_options)
try:
driver.implicitly_wait(10)
driver.get("https://www.facebook.com/login/device-based/regular/login/?login_attempt=1&lwv=110")
@ -98,3 +100,5 @@ def login(user_email_address,
time.sleep(5)
return driver
except:
quit_driver_and_reap_children(driver)

Loading…
Cancel
Save