You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.3 KiB
42 lines
1.3 KiB
from selenium.common.exceptions import (NoSuchElementException,
|
|
StaleElementReferenceException,
|
|
TimeoutException)
|
|
from time import sleep
|
|
from json import dumps
|
|
from os.path import abspath, relpath, split
|
|
|
|
SELENIUM_EXCEPTIONS = (NoSuchElementException,
|
|
StaleElementReferenceException,
|
|
TimeoutException)
|
|
|
|
def try_move(actions, el):
|
|
for _ in range(10):
|
|
try:
|
|
actions.move_to_element(el).perform()
|
|
except StaleElementReferenceException:
|
|
sleep(5)
|
|
continue
|
|
|
|
|
|
def archiver(category):
|
|
"""
|
|
category: the category of logs you want to log
|
|
return values: (log_file_handle, archiver)
|
|
|
|
call archiver like archive("some content")
|
|
"""
|
|
log_path = abspath(relpath(split(category)[-1], "."))
|
|
|
|
log_file = open(log_path, mode="wt", buffering=1)
|
|
|
|
def log(content):
|
|
structured_content = {"category" : category, "content" : content}
|
|
log_file.write("{0}\n".format(dumps(structured_content)))
|
|
|
|
return (log_file, log)
|
|
|
|
|
|
no_chrome_driver = """
|
|
You need to install the chromedriver for Selenium\n
|
|
Please see this link https://github.com/weskerfoot/DeleteFB#how-to-use-it\n
|
|
"""
|
|
|