这是我的脚本,其中JSON文件包含要打开的所有URL。 这个脚本的作用是,它打开一个URL截取并关闭它;然后打开一个新的等等。
如果我想继续为所有这些网址使用相同的浏览器会话,该怎么办?就像转到网站1一样,选择屏幕截图。现在转到同一浏览器/选项卡中的站点2。并仅在最后一个URL关闭会话/浏览器。
import json
from selenium.webdriver import Chrome
with open('path to json file', encoding='utf-8') as s:
data = json.loads(s.read())
for site in data['sites']:
driver = Chrome('path to chrome driver')
driver.get(data['sites'][site])
driver.get_screenshot_as_file(site + '.png')
driver.close()
答案 0 :(得分:2)
然后不要为每个链接打开/关闭浏览器,只需执行一次:
driver = Chrome('path to chrome driver')
for site in data['sites']:
driver.get(data['sites'][site])
driver.get_screenshot_as_file(site + '.png')
driver.close()
答案 1 :(得分:1)
因为你每次循环结束时关闭浏览器,你只需要将driver.close()
放在循环之外。
import json
from selenium.webdriver import Chrome
with open('path to json file', encoding='utf-8') as s:
data = json.loads(s.read())
for site in data['sites']:
driver = Chrome('path to chrome driver')
driver.get(data['sites'][site])
driver.get_screenshot_as_file(site + '.png')
driver.close()