【发布时间】:2016-01-17 23:11:39
【问题描述】:
我正在使用 selenium、python 和 javascript 从以下链接中提取数据:
https://www.google.co.in/search?q=Fortis+Escorts+Heart+Institute+%26+Research+Centre,+Okhla+Road,+Opp+Holy+Family+Hospital,+New+Friends+Colony,+New+Delhi,+Delhi+110025&ludocid=8685206163378021720#lrd=0x390ce4759f47e68d:0x78880cfd492e2558,1
当我执行以下脚本时,主窗口会滚动,而不是弹出窗口(一个 ajax 窗口)。
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
我想滚动弹出窗口而不是主窗口。 任何帮助表示赞赏。
为了在主浏览器窗口中退出循环,我使用以下逻辑:
while (num_clicks>=0 and end_doc==0):
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(3)
num_clicks = num_clicks-1
x = driver.execute_script("return pageYOffset")
if x==y:
end_doc = 1
y = x
有没有办法使用类似的逻辑退出子窗口。
【问题讨论】:
-
我在退出循环时面临挑战。在一个类似的站点上,但使用主窗口而不是弹出窗口,我将滚动的位置(使用 pageYOffset)与滚动后的滚动位置进行比较。如果它们相同,我退出循环。但是在弹出窗口的情况下,似乎没有办法获取 pageYOffset (为主窗口提供结果)。我必须使用一种解决方法来完成这项工作但效率不高。
标签: javascript python ajax selenium