Подскажите, бьюсь уже несколько часов и не могу понять что не так.
Есть скрипт (приведен ниже). У меня работает хорошо, есть только косяк, что почему-то не может открыть ссылки, если не прописан протокол подключения, но думаю с этим разберусь. Главная проблема в том, что после компиляции в .exe у меня работает всё на ура, но стоит перенести .exe со всеми библиотеками, на других ПК не запускается.
Проверял версии WebDriver, устанавливал Selenium и т.д., просто не открывается Chrome (пробовал изменять на EdgeDriver). Я даже понять не могу не работает в общем и целом скрипт или просто не может достучаться до ChromeWebDriver.
Я в Phytone новичок, писал этот скрипт больше 2 месяцев. Уже обрадовался что у меня заработал, но на других ПК не работает. Подскажите в чем может быть проблема.
Спасибо!
import pyautogui from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager import win32api import time import tkinter as tk from tkinter import filedialog import os def save_screenshots(desired_width, desired_height, x, y, close_browser_after_screenshot): driver = webdriver.Chrome(ChromeDriverManager().install()) driver.set_window_size(desired_width, desired_height) region_width, region_height = desired_width - x, desired_height - y region_x, region_y, region_width, region_height = x, y, region_width, region_height folder_path = folder_path_entry.get() # Читаем список URL with open(urls_file_entry.get(), 'r') as f: for url in f: url = url.strip() if url.endswith('/'): url = url[:-1] driver.execute_script("window.open('" + url + "', '_blank');") time.sleep(int(sleep_entry.get())) # добавляем задержку в 10 секунд, чтобы страница успела загрузиться driver.switch_to.window(driver.window_handles[-1]) filename = url.split('//')[1].replace('/', '_') + '.png' file_path = os.path.join(folder_path, filename) # создаем полный путь к файлу pyautogui.screenshot(file_path, region=(region_x, region_y, region_width, region_height)) if close_browser_after_screenshot: driver.quit() def browse_folder_path(): folder_path = filedialog.askdirectory() folder_path_entry.delete(0, tk.END) folder_path_entry.insert(0, folder_path) def browse_urls_file(): file_path = filedialog.askopenfilename() urls_file_entry.delete(0, tk.END) urls_file_entry.insert(0, file_path) def start_screenshot(): desired_width = int(desired_width_entry.get()) desired_height = int(desired_height_entry.get()) x = int(x_entry.get()) y = int(y_entry.get()) close_browser_after_screenshot = close_browser_after_screenshot_var.get() save_screenshots(desired_width, desired_height, x, y, close_browser_after_screenshot) #Интерфейс root = tk.Tk() root.title("Автоскриншотер") desired_width_label = tk.Label(root, text="Ширина:") desired_width_entry = tk.Entry(root, width=10) desired_width_entry.insert(0, "2560") desired_height_label = tk.Label(root, text="Высота:") desired_height_entry = tk.Entry(root, width=10) desired_height_entry.insert(0, str(win32api.GetSystemMetrics(1) - 80)) # 40 - высота трея Windows по умолчанию sleep_label = tk.Label(root, text="Время ожидания (секунды):") sleep_entry = tk.Entry(root, width=10) sleep_entry.insert(0, "5") x_label = tk.Label(root, text="X:") x_entry = tk.Entry(root, width=10) x_entry.insert(0, "0") y_label = tk.Label(root, text="Y:") y_entry = tk.Entry(root, width=10) y_entry.insert(0, "0") folder_path_label = tk.Label(root, text="Куда сохранить скриншоты:") folder_path_entry = tk.Entry(root, width=35) folder_path_entry.insert(0, "Нажми на путь чтобы выбрать папку...") folder_path_button = tk.Button(root, text="Путь", command=browse_folder_path) urls_file_label = tk.Label(root, text="Путь к текстовому файлу с URL:") urls_file_entry = tk.Entry(root, width=35) urls_file_entry.insert(0, "Нажми на путь чтобы выбрать файл...") urls_file_button = tk.Button(root, text="Путь", command=browse_urls_file) close_browser_after_screenshot_var = tk.BooleanVar() close_browser_after_screenshot_var.set(True) close_browser_after_screenshot_checkbutton = tk.Checkbutton(root, text="Закрыть браузер") start_button = tk.Button(root, text="Скриншотить", command=start_screenshot) # Отображаем элементы управления на окне desired_width_label.grid(row=0, column=0, sticky="w") desired_width_entry.grid(row=0, column=0) desired_height_label.grid(row=1, column=0, sticky="w") desired_height_entry.grid(row=1, column=0) x_label.grid(row=2, column=0, sticky="w") x_entry.grid(row=2, column=0) y_label.grid(row=3, column=0, sticky="w") y_entry.grid(row=3, column=0) sleep_label.grid(row=6, column=0, sticky="w") sleep_entry.grid(row=6, column=1) folder_path_label.grid(row=4, column=0, sticky="w") folder_path_entry.grid(row=4, column=1) folder_path_button.grid(row=4, column=2) urls_file_label.grid(row=5, column=0, sticky="w") urls_file_entry.grid(row=5, column=1) urls_file_button.grid(row=5, column=2) close_browser_after_screenshot_checkbutton.grid(row=7, column=0, columnspan=2) start_button.grid(row=8, column=0, columnspan=3) root.mainloop()