【发布时间】:2016-08-15 05:26:17
【问题描述】:
我正在尝试通过 Selenium 从 Blog 中删除动态内容,但它总是返回未渲染的 JavaScript。
为了测试这种行为,我尝试等到 iframe 完全加载并打印它的内容,打印效果很好,但是当我再次移回父框架时,它只显示未渲染的 JavaScript。
我正在寻找能够打印完全呈现的 HTML 内容的东西
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
driver = webdriver.Chrome("path to chrome driver")
driver.get('http://justgivemechocolateandnobodygetshurt.blogspot.com/')
WebDriverWait(driver, 40).until(expected_conditions.frame_to_be_available_and_switch_to_it((By.ID, "navbar-iframe")))
# Rendered iframe HTML is printed.
content = driver.page_source
print content.encode("utf-8")
# When I switch back to parent frame it again prints non rendered JavaScript.
driver.switch_to.parent_frame()
content = driver.page_source
print content.encode("utf-8")
【问题讨论】:
-
因为
.page_source返回源,而不是DOM -
@Fabricator 如何获取更新后的 DOM?
-
@UmarIqbal,您是否尝试过使用
find_element方法之一选择元素? -
我认为任何
find_element*命令都应该这样做 -
或者你可以直接执行javascript code
标签: javascript html python-2.7 selenium web-scraping