使用Selenium Python逐个打开同一选项卡中的多个URL

时间:2018-02-18 14:51:22

标签: python selenium selenium-webdriver

这是我的脚本,其中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()

2 个答案:

答案 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()