【发布时间】:2013-04-24 10:12:39
【问题描述】:
我有这个 HTML 代码,我正在使用 python 脚本处理/报废:
<a href="javascript:VerMapa('AVDA. DE AMERICA, 2 -33880 POLA DE ALLANDE','RODRIGUEZ-PELAEZ PEÑA, ANA MARIA','AVDA. DE AMERICA, 2 -33880','33880','ALLANDE','183','178')"><img src="../../Fijos/Img/VerMapa.jpg" alt="" width="25" height="24" border="0"> <br>Ver Mapa</a>
这是函数的定义:
function VerMapa(direccion,farmacia,domicilio,CP,municipio, numeroOficina,identidad) {
window.open("googleMaps.aspDir="+direccion+"&Far="+farmacia+"&Dom="+domicilio+"&CP="+CP+"&Mun="+municipio+"&NO="+numeroOficina+"&Id="+identidad+"&",'Lista','toolbar=no, menubar=no, scrollbars=yes,resizable=yes,status=yes,screenX=50,top=50,width=740,height=530');
}
我需要调用 href 属性中的 VerMapa('AVDA. DE AMERICA, 2 -33880 POLA DE ALLANDE','RODRIGUEZ-PELAEZ PEÑA, ANA MARIA','AVDA. DE AMERICA, 2 -33880','33880','ALLANDE','183','178') javascript 函数并获取返回的 HTML 代码。
我已经检查了 spider-monkey 和 PyV8,但我认为它们在这里帮不了我。蜘蛛猴很清楚地告诉你不能调用 javascript 定义的函数。
我现在正在尝试使用 Selenium,但我不知道如何将源代码返回给 python。
据我所知,我刚刚实现了一个测试脚本并设法在浏览器窗口中加载了请求的页面。
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.farmasturias.org/GESCOF/cms/Guardias/FarmaciaBuscar.asp?IdMenu=111")
htmlCode = browser.execute_script("return VerMapa('AVDA. DE AMERICA, 2 -33880 POLA DE ALLANDE','RODRIGUEZ-PELAEZ PEÑA, ANA MARIA','AVDA. DE AMERICA, 2 -33880','33880','ALLANDE','183','178')")
print htmlCode;
1.- 我在 htmlCode var 中没有得到任何东西。 ¿我怎样才能取回由 javascript 函数生成的源代码?我已经从这篇文章Getting the return value of Javascript code in Selenium
2.- 有什么方法可以在不打开任何浏览器窗口的情况下使用 Selenium?
【问题讨论】:
-
我用 java 尝试了相同的代码,并填充了一个新的弹出窗口。执行 javascript 并使用 print htmlCode 后,是否需要显示地图的弹出窗口的 html 源代码?
-
也许我没有说清楚。代码会弹出一个包含预期内容的新窗口,但 htmlCode var 中没有返回任何内容。我正在尝试在该 var 中获取页面的源代码。
-
@DavidCasillas 你要主页的源代码还是新打开的弹窗?
-
为弹出窗口创建的on。