リンクがクリックされた後、Selenium を使用してページの HTML を取得したいと考えています。通常は、クリックしたいリンクをダウンロードするだけですが、この場合、リンクをクリックすると難読化された Javascript が起動され、現在のページの DOM にデータが読み込まれます。それはかなり厄介です。
だから、ここに私が期待していたものがあります。これはページをロードし、必要なリンクを見つけてクリックし、outerHTML
JavaScript を使用して DOM をテキストとして返します。
from selenium import webdriver
def get_html_after_click(i):
'''Loads a page, then clicks an element, and returns the HTML'''
browser = webdriver.Firefox()
browser.get('http://www.sdjudicial.com/sc/scopinions.aspx')
elem = browser.find_elements_by_class_name('igeb_ItemLabel')[i]
elem.click()
js = '''html = document.getElementsByTagName('html')[0];
return html.outerHTML;'''
html = browser.execute_script(js)
browser.quit()
return html
browser.page_source
これを実行するたびに返される HTML は、リンクをクリックして JavaScript を使用して DOM を取得したにもかかわらず、実行した場合と同じです。
私はセレンが初めてです。私は何が欠けていますか?