单击链接后,我想使用 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
除了每当我运行它时,我得到的 HTML 和我做的一样browser.page_source
——即使我点击了链接并使用 JavaScript 抓取了 DOM。
我是 Selenium 的新手。我错过了什么?