undetected-chromedriver/example/test_workflow.py

73 lines
2.0 KiB
Python

# coding: utf-8
import time
import logging
from selenium.webdriver.support.wait import WebDriverWait
import selenium.webdriver.support.expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import undetected_chromedriver as uc
logging.basicConfig(level=10)
logger = logging.getLogger('test')
for k,v in os.environ.items():
logger.info("%s = %s" % (k,v))
tmp = Path('/tmp').resolve()
for item in tmp.rglob('**'):
print(item)
if item.is_dir():
if 'chrome-' in item.name:
path_list = os.environ['PATH'].split(os.pathsep)
path_list.insert(0, str(item))
os.environ['PATH'] = os.pathsep.join(path_list)
break
driver = uc.Chrome(headless=True)
driver.get('https://www.nowsecure.nl')
print(driver.current_url)
try:
WebDriverWait(driver,10).until(EC.visibility_of_element_located(("css selector", "body")))
except TimeoutException:
pass
print(driver.current_url)
try:
WebDriverWait(driver,10).until(EC.text_to_be_present_in_element(("css selector", "main h1"), "OH YEAH, you passed!"))
except TimeoutError:
logging.getLogger().setLevel(20)
print(driver.current_url)
logger.info('trying to save a screenshot via imgur')
# driver.reconnect()
driver.save_screenshot('/tmp/screenshot.jpg')
driver.get('https://imgur.com/upload')
driver.find_element('css selector', 'input').send_keys('/tmp/screenshot.jpg')
time.sleep(2)
logger.info('A SCREENSHOT IS SAVED ON %s' % driver.current_url)
time.sleep(5)
driver.quit()
# def main():
# # due to the randomneess of the chrome install path on the runner when running action, i have to find it manufally
# time.sleep(5)
# driver = uc.Chrome(headless=True)
# driver.get("https://nowsecure.nl")
# WebDriverWait(driver, 15).until(
# EC.text_to_be_present_in_element(("css selector", "main h1"), "OH YEAH, you passed!"))
# driver.quit()
# if __name__ == "__main__":
# main()