当前位置: 首页 > 面试题库 >

webdriver.FirefoxProfile():是否可以不复制配置文件就使用配置文件?

文凯康
2023-03-14
问题内容

如文档所述,您可以使用可选参数调用webdriver.FirefoxProfile()profile_directory来指向浏览器要使用的特定配置文件的目录。我注意到运行此命令花了很长时间,因此当我查看代码时,似乎正在复制指定的配置文件问题是,复制配置文件需要很长时间(大约>
30分钟,没有耐心等待它完成。)

我正在使用用户脚本和selenium的混合为我做一些自动化,因此每次想测试我的代码时都要设置一个新的配置文件会很麻烦。

是更改此行为以编辑firefox_profile.py自身的唯一方法(如果是,执行此操作的最佳方法是什么?)?


问题答案:

按照 GeckoDriverFirefox上 的当前实现,其FirefoxProfile()工作方式如下:

  • 如果通过以下方式通过新的 Firefox配置文件* 启动 浏览会话*
        from selenium import webdriver

    myprofile = webdriver.FirefoxProfile()
    driver = webdriver.Firefox(firefox_profile=myprofile, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
    driver.get('https://www.google.co.in')
    print("Page Title is : %s" %driver.title)
    driver.quit()
  • 运行时将创建一个新的 rust_mozprofile ,如下所示:
        1521446301607   mozrunner::runner   INFO    Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-profile" "C:\\Users\\ATECHM~1\\AppData\\Local\\Temp\\rust_mozprofile.xFayqKkZrOB8"
  • 在成功关闭(即成功调用driver.quit())时,粗临时 rust_mozprofile.xFayqKkZrOB8 会被完全删除/销毁。

  • 再次通过 现有的 Firefox Profile()* 启动 浏览会话的 情况如下: __*

        from selenium import webdriver

    myprofile = webdriver.FirefoxProfile(r'C:\Users\AtechM_03\AppData\Roaming\Mozilla\Firefox\Profiles\moskcpdq.SeleniumTest')
    driver = webdriver.Firefox(firefox_profile=myprofile, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
    driver.get('https://www.google.co.in')
    print("Page Title is : %s" %driver.title)
    driver.quit()
  • 同样,将在运行时创建一个新的 rust_mozprofile ,如下所示:
        1521447102321   mozrunner::runner   INFO    Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-profile" "C:\\Users\\ATECHM~1\\AppData\\Local\\Temp\\rust_mozprofile.2oSwrQwQoby9"
  • 同样,在这种情况下,以及在成功关闭(即成功调用driver.quit())后,临时 rust_mozprofile.2oSwrQwQoby9也会 被完全删除/销毁。

  • 因此,您正在观察的 时间跨度FirefoxProfile() 挖出新的 rust_mozprofile 所需的时间。

也许根据您的问题的时间跨度 来复制配置文件(大约30分钟以上) 纯属开销。因此,如果不复制,就无法使用
Firefox配置文件rust_mozprofile

  • Selenium Client 升级到当前 版本3.11.0
  • 升级 GeckoDriver 当前 GeckoDriver v0.20.0 水平。
  • Firefox 版本升级到 Firefox Quantum v59.0.1 级别。
  • 清理 你的 项目工作 ,通过你的 IDE重建 仅需要依赖你的项目。
  • 在执行 测试套件 之前和之后,使用 CCleaner 工具清除所有操作系统琐事。 __
  • 如果您的基本 Firefox 基本版本太旧,请通过 Revo Uninstaller 卸载它,并安装最新的GA和 Firefox Quantum的 发行版本。
  • 执行您的@Test


 类似资料:
  • 我正在写一个jar,打算与Spring和Ehcache一起使用。Spring要求为每个元素定义一个缓存,所以我计划为jar定义一个Ehcache,最好是作为jar中的一个资源,可以导入应用程序的主要Ehcache配置。然而,我对示例Ehcache配置文件的阅读和我的谷歌搜索并没有找到任何导入子Ehcache配置文件的方法。 有没有办法导入一个子Ehache配置文件,或者有没有其他方法来解决这个问题

  • 我刚开始接触docker,我运行以下程序: 我得到了一个拒绝许可的错误。事实证明,docker写入目录,这需要有写入权限。许多其他docker命令也需要类似的内容: 现在,我真的不喜欢为每个docker命令添加根特权的概念。这可能是因为我还不太了解docker,但每个程序都是如此)。这是docker的要求吗? 如果它不是必需的,那么我如何配置它,使它与其他程序非常相似,它们只在需要时向我请求权限,

  • 我想实现以下目标: 在“开发”模式下,在当前webapp中执行Spring云配置 因此,当前webapp的类路径包含对配置服务器和客户端的依赖关系: 在开发模式下,并在引导程序中具有以下属性。yml,没问题(嵌入式配置服务器已配置并启动) 当不在'dev'模式(例如spring.profiles.active=prod)时,当前的webapp不会启动:它无法自动装配我的属性(我猜嵌入式服务器是以错

  • 给定一个测试类,如: 我得到了错误: java.lang.IllegalStateException:配置错误:发现测试类[com.example.myControllerTest]的多个@BootStrapWith声明:[@org.springframework.test.context.bootStrapWith(value=class org.springframework.boot.tes

  • 问题内容: 题 是否可以使Log4J显示其用于配置的文件的完整路径? 背景 我与log4j有爱恨交织的关系。在好的时候,它很棒,但是当它不起作用时,它可能是最难调试的事情之一。我管理应用程序中的所有日志记录。因此,我对日志记录和手册中定义的默认初始化过程非常熟悉。 不过,似乎每隔几周,记录就会中断,我花 了很多 时间来解决问题。 这次,它被严重破坏了。每个地方的每个日志语句都被转储到控制台中,我不

  • 我正在尝试在我的Android项目上启用proguard代码混淆。这些年来,我看到了很多问题,但很多线索都是相当古老的,很难说出它们对我有多大的相关性。 2编辑项目。属性,取消注释 proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 3由于pro Guard-Project.txt不