1

リンクがクリックされた後、Selenium を使用してページの HTML を取得したいと考えています。通常は、クリックしたいリンクをダウンロードするだけですが、この場合、リンクをクリックすると難読化された Javascript が起動され、現在のページの DOM にデータが読み込まれます。それはかなり厄介です。

だから、ここに私が期待していたものがあります。これはページをロードし、必要なリンクを見つけてクリックし、outerHTMLJavaScript を使用して 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 を取得したにもかかわらず、実行した場合と同じです。

私はセレンが初めてです。私は何が欠けていますか?

4

1 に答える 1

2

あなたはおそらくそれを本当に素早くやっています。要素をクリックした後、waitクリックのために表示される予想される要素に対して、 browser.page_source Javaスクリプトを実行または実行します

于 2013-06-12T20:18:09.743 に答える