我想使用Python在Selenium上登录此page。但浏览器中显示的页面与HTML中描述的页面不同,Firefox或Chrome Web驱动程序获得相同的结果。Selenium:浏览器显示与HTML代码不同
chromedriver = "./chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
# OR
#driver = webdriver.Firefox()
driver.get('http://www.anb.org/login.htmlurl=%2Farticles%2Fhome.html&ip=94.112.189.79&nocookie=0')
# get screenshot of page
driver.get_screenshot_as_file('./01.png')
#get source code of page
print driver.page_source
我不允许发布图像,但图像与网页浏览器中显示的页面完全相同。从驱动
HTML代码:
<html><head>
<title>American National Biography Online</title>
<script>
document.write ("<FRAMESET ROWS=\"103,*\" FRAMEBORDER=0 BORDER=0 FRAMESPACING=0>\n");
document.write (" <FRAME SRC=\"top-home.html\" MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=NO>\n");
if (location.search) {
var url = unescape (location.search);
url = (new String(url)).substring(1);
if (url.indexOf ("&") == -1) {
document.write (" <FRAME SRC=\"" + url + "\" MARGINWIDTH=0 MARGINHEIGHT=0>\n");
} else {
document.write (" <FRAME SRC=\"main-home.html" + location.search + "\" MARGINWIDTH=0 MARGINHEIGHT=0>\n");
}
}
else
document.write (" <FRAME SRC=\"main-home.html\" NAME=atop MARGINWIDTH=0 MARGINHEIGHT=0>\n");
document.write ("</FRAMESET>\n");
</script></head>
<frameset rows="103,*" frameborder="0" border="0" framespacing="0">
<frame src="top-home.html" marginwidth="0" marginheight="0" scrolling="NO">
<frame src="main-home.html?url=%2Farticles%2Fbrowse.html&ip=94.112.189.79&nocookie=0" marginwidth="0" marginheight="0">
</frameset>
<noframes>
</noframes>
</html>
正如你所看到的,HTML和图片不匹配。
也许问题是与帧?
我的配置:
osx 10.8.5
python 2.7.5
chrome browser 28.0.1500.71
firefox browser 24.0
我安装了最新的铬/火狐webdrivers,但我真的不知道如何找到版本。
我没有看到这个HTML是错误的,它只是由服务器提供的HTML,它被JavaScript调用之前。 –
可能的重复[如何可以通过JavaScript使用Selenium/Python编写html内容](http://stackoverflow.com/questions/16073626/how-can-i-get-html-content-written-by-javascript- with-selenium-python) –
这正是问题所在,也是HTML不同的原因。这不是一个未知的代码,只是原来的代码。 –