尝试为Python Seleniumbase设置Chrome下载目录,但它继续使用默认目录

ht4b089n  于 2023-09-29  发布在  Python
关注(0)|答案(1)|浏览(141)

我仍在学习如何使用Selenium Python,并且在更改默认下载目录时遇到了问题。我希望一个新的或更有经验的眼睛可以帮助。
我正在使用Python 3.10.11 / Selenium 4.10 / Chrome(无论最新版本是什么)
下面是相关的代码--整个脚本运行时没有任何错误,但它并不使用我提供的目录路径,而是从脚本运行的任何目录创建一个名为“downloaded_files”的子文件夹,并将文件转储到那里。

from selenium import webdriver
from seleniumbase import Driver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

download_path = "\\\E275proddwdb\kyote"

# Set download folder
op = webdriver.ChromeOptions()
config = {"download.default_directory":download_path, "safebrowsing.enabled":"false"}
op.add_experimental_option("prefs", config)
op.headless = False

##Call Chrome Browser
service = Service()
options = webdriver.ChromeOptions()
browser = Driver(browser="chrome", headless=False) 
browser.get("https://www.kyote.org/mc/login.aspx?url=kplacementMgmt.aspx")

任何帮助,在弄清楚我是如何搞砸了这将是非常,非常感谢!

qij5mzcb

qij5mzcb1#

它看起来像是将两个独立的框架混合成一个框架。你有webdriver和那些options,你有seleniumbase,它的配置不同。downloaded_files文件夹是硬编码在constants(seleniumbase/fixtures/constants.py)中的,这是有充分理由的。该文件夹的名称是唯一的,这样下载到该文件夹的文件就不会与seleniumbase以外的任何文件混淆。
以下是最新版本seleniumbase4.19.0)的工作脚本:

from seleniumbase import Driver

driver = Driver(browser="chrome", headless=False)
try:
    driver.get("https://www.kyote.org/mc/login.aspx?url=kplacementMgmt.aspx")
    driver.type('input[id*="UserName"]', "MyName")
    driver.type('input[id*="Password"]', "PASSWORD")
    driver.sleep(2)
    driver.click('[value="Log In"]')
    driver.sleep(4)
finally:
    driver.quit()

新的直接driver方法,如click()type()是本周才添加的(在4.18.9中),所以你一定要确保你有最新的版本或紧接在它之前的版本。

相关问题