基于 python3.11.5版本
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
import time
import os
import glob
options = webdriver.ChromeOptions()
options.debugger_address = '127.0.0.1:9222' # 远程调试地址和端口号
driver = webdriver.Chrome(options=options)
directory = '/Users/fenghuimin/pyProject/pngToAi/images'
image_files = []
jpg_files = glob.glob(os.path.join(directory,"*.jpg"))
png_files = glob.glob(os.path.join(directory,"*.png"))
image_files.extend(jpg_files)
image_files.extend(png_files)
for i in image_files:
print(i)
#driver.refresh()
#time.sleep(1)
driver.refresh()
#time.sleep(20)
#driver.refresh()
#time.sleep(10)
try:
# 等待页面中包含"快速操作"这四个字
WebDriverWait(driver, 120).until(
EC.presence_of_element_located((By.XPATH, "//*[contains(text(), '快速操作')]"))
)
time.sleep(1)
# 找到了"快速操作"这四个字 逻辑
# wait = WebDriverWait(driver, 60) # 最多等待10秒
# qa_export_element = wait.until(
# EC.visibility_of_element_located((By.XPATH,
# '/html/body/x-app//x-quick-action-tools-view//quick-action-component//qa-app-root/qa-app/qa-convert-to-svg-editor//qa-workspace/qa-export'))
# )
# driver = webdriver.Chrome()
# url = "https://new.express.adobe.com/tools/convert-to-svg#"
# url = "https://www.baidu.com"
# driver.get(url)
# time.sleep(10)
# executor_url = driver.command_executor._url
# session_id = driver.session_id
##先登陆
# button_login = driver.find_element(By.CLASS_NAME, 'feds-login')
# 点击登陆
# button_login.click()
# google_element = driver.find_element(By.ID, "Signup-GoogleButton")
# google_element.click()
# input_element = driver.find_element(By.CLASS_NAME,'spectrum-Textfield--quiet')
# 输入账号
# input_element.send_keys('535452589@qq.com')
# button_continue = driver.find_element(By.CLASS_NAME, 'spectrum-Button--cta')
# button_continue.click()
# 账号登陆每一次都需要邮箱验证码验证,先换个方式
# time.sleep(200)
# 第一步
shadow_root_qa_app = driver.execute_script(
"return document.querySelector('x-app').shadowRoot.querySelector('x-quick-action-tools-view').shadowRoot.querySelector('quick-action-component').shadowRoot.querySelector('qa-app-root')")
# 第二步
qa_app_element = shadow_root_qa_app.find_element(By.TAG_NAME, 'qa-app')
# 第三步
qa_convert_element = qa_app_element.find_element(By.TAG_NAME, 'qa-convert-to-svg-editor')
# 第四步
qa_workspace_element = driver.execute_script("return arguments[0].shadowRoot.querySelector('qa-workspace')",
qa_convert_element)
# 第五步
qa_file_upload_element = qa_workspace_element.find_element(By.TAG_NAME, 'qa-file-upload')
# 第六步 点击事件绑定元素
sp_dropzone_element = driver.execute_script("return arguments[0].shadowRoot.querySelector('sp-dropzone')",
qa_file_upload_element)
input_element = driver.execute_script("return arguments[0].shadowRoot.querySelector('input')",
qa_file_upload_element)
input_element.send_keys(str(i)) # 请替换为实际文件的路径
time.sleep(20)
# 下载转化好的svg图
qa_export_element = qa_workspace_element.find_element(By.TAG_NAME, 'qa-export')
# wait = WebDriverWait(driver, 60) # 最多等待10秒
# qa_export_element = wait.until(
# EC.visibility_of_element_located((By.XPATH,
# '/html/body/x-app//x-quick-action-tools-view//quick-action-component//qa-app-root/qa-app/qa-convert-to-svg-editor//qa-workspace/qa-export'))
# )
div_element = driver.execute_script("return arguments[0].shadowRoot.querySelector('div')", qa_export_element)
download_element = div_element.find_element(By.TAG_NAME, 'sp-button')
download_element.click()
print(str(i) + "转化完成已下载svg图!!")
#对于转换成功的 随机删除
os.remove(str(i))
# 绑定点击事件
# sp_dropzone_element.click()
# time.sleep(2)
# driver.switch_to.alert.dismiss() # 这会模拟用户按下"Esc"键
# driver.refresh()
# time.sleep(10)
except:
# 页面中未找到"快速操作" 逻辑
print(str(i)+"转化失败!!")
finally:
driver.refresh()
#使用Adobe illustrator 加载下面的js脚本实现将svg目录下的svg格式图转存为 ai目录下的ai格式
// SVG文件夹路径
var svgFolderPath = "/Users/fenghuimin/pyProject/pngToAi/svg/";
// AI文件夹路径
var aiFolderPath = "/Users/fenghuimin/pyProject/pngToAi/ai/";
// 获取SVG文件夹中的所有文件
var svgFolder = Folder(svgFolderPath);
var svgFiles = svgFolder.getFiles("*.svg");
// 遍历SVG文件
for (var i = 0; i < svgFiles.length; i++) {
var svgFile = svgFiles[i];
// 打开SVG文件
var doc = app.open(svgFile);
// 构建AI文件路径
var aiFileName = svgFile.name.replace(".svg", ".ai");
var aiFilePath = aiFolderPath + aiFileName;
// 保存为AI文件
var aiFile = new File(aiFilePath);
doc.saveAs(aiFile, IllustratorSaveOptions, true);
// 关闭文档
doc.close(SaveOptions.DONOTSAVECHANGES);
}