#! /usr/bin/env python
import sys
import time
sys.path.insert(0, '.')
import json
from tracker import config, mailer
from tracker.logger import get_logger
logger = get_logger(__name__)
from tracker.instagram.instascrape import store_screenshot, _login_to_instagram
from tracker.webdriver import my_driver
def visit_instagram_and_login():
with my_driver(include_remote_profile=True) as driver:
_login_to_instagram(driver, config.insta_username, config.insta_password)
def test_insta_scouting():
from tracker import runner
logger.info("Starting instagram scouting in 30 seconds")
import time; time.sleep(30)
logger.info("Awake!")
runner.instagram_scouting(limit=2, use_xhr_injection=True)
def visit_example():
images = []
with my_driver(include_remote_profile=True, force_touch_profile_dir=True) as driver:
logger.info("Driver initialised successfully")
images.append(store_screenshot(driver, 'testing'))
driver.get('http://example.com/')
images.append(store_screenshot(driver, 'testing'))
logger.info("Screenshot saved.")
logs = driver.get_console_logs()
if not logs:
logger.info("No console logs created during selenium run")
for log in logs or []:
logger.info("Console log detected: {}".format(log), extra=log)
send_email(logs or [], images or [])
wait_20_minutes_or_until_at_sentinel_site(driver)
def send_email(logs, image_urls):
logjson = "\n\n".join([json.dumps(l, indent=2) for l in logs])
images = "\n".join([
f'''
'''
for imgurl in image_urls
])
html = f'''
{logjson}DONE!
''' mailer.send_simple_message("ECS Selenium Test Completed", html=html) def wait_20_minutes_or_until_at_sentinel_site(driver): exit_time = time.time() + 20*60 while time.time() < exit_time: if 'axios.com' in driver.current_url: logger.info("Reached sentinel axios.com, exiting") return 0 time.sleep(5) logger.info("20 minutes elapsed, exiting") return 1 logger.info("Starting selenium test") import os if True or os.environ.get('WL_TEST_THIS') == 'LOGIN': logger.info("Will open instagram for login") time.sleep(90) with my_driver(include_remote_profile=True) as driver: driver.get('https://instagram.com/accounts/login') logger.info("Page should be open. Sleeping for 5 minutes.") time.sleep(300) else: logger.info("Doing instagram tests") test_insta_scouting() raise RuntimeError("This is a test")