import time,json
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
o=Options()
o.set_preference('dom.webdriver.enabled',False)
o.set_preference('network.http.referer.spoofSource',True)
o.set_preference('network.http.referer.defaultReferrer','https://ein38eu95792b.4656hd15.cc/')
d=webdriver.Firefox(options=o)
d.set_page_load_timeout(40)
try:
    d.get('http://127.0.0.1:9999/geetest_page.html')
    time.sleep(8)
    print('loaded',d.execute_script('return window.gtLoaded'),'err',d.execute_script('return window.gtError'))
    html=d.execute_script('return document.body.innerHTML')
    open('gt_dom.html','w').write(html)
    print('dom len',len(html))
    print(html[:2000])
    # list elements with class containing geetest
    els=d.execute_script("return Array.from(document.querySelectorAll('[class*=geetest]')).map(e=>e.tagName+' | '+e.className+' | '+(e.getAttribute('style')||'').slice(0,120))")
    for e in els[:60]: print(e)
finally:
    d.quit()
