首页 > 解决方案 > EOL 字符串文字使用 webdriver selenium 创建保存位置

问题描述

因此,正如标题所示,我正在尝试在 Python 3 中完成几件事。

第 1 步 - 我想运行一个脚本,用今天的日期创建一个文件夹。我目前正在这样做:

import time
from selenium import webdriver
import os
from datetime import date

today = date.today()

os.mkdir('path/to/Screenshots' + ' ' + today.strftime('%m' + '-' + '%d' + '-' + '%Y'))

第 2 步让 webdriver 打开一个指向链接的 chrome 窗口。我目前正在这样做

driver = webdriver.Chrome('/path/to/chromedriver')
driver.get('http://www.google.com/');

第 3 步我遇到问题的地方 - 我试图让 webdriver 截取屏幕截图并将其放入我在第 1 步中创建的文件夹中。不,我认为我会这样做:

driver.save_screenshot('path/to/Screenshots' + ' ' + today.strftime('%m' + '-' + '%d' + '-' + '%Y')/image.png')

这给了我错误 SyntaxError: EOL while scanning string literal - 请帮助我理解我做错了什么。

标签: pythonseleniumdateselenium-webdriverwebdriver

解决方案


要创建具有今天 日期的文件夹并保存该文件夹的一些屏幕截图,您可以使用以下基于定位器策略的解决方案:

  • 代码块:

    import os
    from datetime import date
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    datetoday = date.today()
    os.mkdir(str(datetoday))
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    options.add_experimental_option('useAutomationExtension', False)
    driver = webdriver.Chrome(options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get("http://www.google.com")
    for i in range(1,5):
        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, "q"))).send_keys("DaveDoesDev")
        driver.save_screenshot("{}/image{}.png".format(datetoday, i))
    
  • 输出:

    • 该程序将创建一个包含今天日期的子目录。
    • 所有屏幕截图都将以不同的名称保存。
  • 浏览器快照:

日期目录


推荐阅读