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

Selenium-如何从现有的Firefox配置文件导入所有设置

丁书
2023-03-14
问题内容

我为什么要这样做:

我需要自动化一个需要客户端SSL证书的网站。我知道这是无法使用fp.set_preference()指定的选项。我无法控制要连接的服务器,因此无法更改安全设置。

我尝试了什么

我创建了一个单独的Firefox配置文件,其中设置了必需的“受客户端密码保护的SSL证书”,并自动选择了一个证书和一些手动代理设置(SOCKS
5)。经过大量谷歌搜索后,我将代码设置如下:

from selenium import webdriver
url = 'https://www.paininneck.co.uk'
fp = webdriver.FirefoxProfile(r"""C:\Users\
<user>\AppData\Local\Mozilla\Firefox\Profiles\<Firefox>""")
driver = webdriver.Firefox(fp)
driver.get(url)

问题:

浏览器确实打开,但是,它仍在使用默认配置文件。我在其他配置文件中更改的设置均未复制。我的代码中指定的配置文件仍可以通过Firefox UI进行选择。

我希望我错过了一些简单的事情,而且一直以来谷歌搜索都没有白费!我不愿意更改为默认设置,但是在调整了默认配置文件以查看设置是否可以复制后,很明显它们不会复制,并且Selenium每次都进行了干净的复制。

亲切的问候

丰富

版本:

Python==3.6.1,
Selenium==3.4.3,
Firefox==53
gecko driver==v0.16.1
OS==Windows(Its for work dont judge me!)

问题答案:

使用Selenium 3.4.x,Python 3.6.1以及geckodriver v0.16.1和Mozilla Firefox
53.0,可以通过以下步骤使用现有的Firefox配置文件:

  1. 在Windows框中找到Firefox配置文件目录。例如,我的Firefox个人资料"debanjan"位于C:\\Users\\AtechM_03\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles的名称下w8iy627a.debanjan
  2. 接下来,您必须在启动时指定Firefox Profile目录的绝对路径webdriver
  3. 这是'debanjan'在我的Windows计算机上打开现有Firefox配置文件的工作代码:

要注意的是,当前的Selenium-Python绑定对于geckodriver不稳定,并且看起来是特定于体系结构的。您可以找到github
讨论并在这里合并。因此,您可能还需要在初始化
Webdriver时* 传递firefox二进制文件的绝对路径 *

    from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

profile = webdriver.FirefoxProfile('C:\\Users\\AtechM_03\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\w8iy627a.debanjan')
binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')

driver = webdriver.Firefox(firefox_profile=profile, firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
url = 'https://www.paininneck.co.uk'
driver.get(url)


 类似资料:
  • 问题内容: 我正在使用selenium,并想为3个不同的脚本使用单独的firefox配置文件。这可能吗? 问题答案: 不确定如何执行脚本,但是在实例化对象时,可以指定a 作为参数。这是通过创建一个对象(下面的示例)并提供目标配置文件的路径作为参数来完成的: 据我所知,您无法在实例化实例后修改配置文件(尽管我可能是错的- 如果您需要这样做,值得尝试:))。在这种情况下,您将在每个脚本中创建一个配置文

  • 问题内容: 我有以下结构: 我可以在views.py,forms.py中使用 但是我不能在myFile.py中使用它 我加了 并且当我对其进行修改时,Flask Web服务器会重新启动,但是并没有说在重新启动后app / myFile.py中发现更改。 我需要做什么才能使用 在我的python文件中。我看不到form.py有什么特别的事情。 编辑:这是我的文件: 问题答案: 人们谈论Flask中的

  • 我已经使用python&Selenium在Ubuntu OS中设置了一个新创建的Firefox配置文件的路径。但是当我运行python脚本时,我会得到一个错误 我已将该文件的权限更改为755,但仍然出现错误,并尝试了sudo。 这是我的python脚本的开始:- 文件“default2.py”,第9行,在浏览器=webdriver.firefox(firefox_binary=binary)文件中

  • 问题内容: 我想从文件夹导入所有图像,并根据需要使用。但是不能通过以下方法做到这一点。我在做什么?这个: 我在console.log中收到此错误 资料夹结构: 问题答案: 在普通的javascript中这是不可能的,因为导入/导出是静态确定的。 如果您使用的是webpack,请查看require.context。您应该能够执行以下操作: 参考:https : //webpack.js.org/gu

  • 我的目标是使用之前保存的FireFox浏览器配置文件在Selenium Grid的Remore WebDrive中。 我尝试将配置文件对象添加到,但失败了,是序列化错误。我根据此JAVA代码编写的以下代码: 错误:。。。文件“C:\Python27\Lib\json\uuu init\uuuuuu.py”,第244行,转储返回\u default\u编码器。编码(obj)文件“C:\Python2

  • 问题内容: 有人可以告诉我如何使用Java为我的客户firefox配置文件禁用插件吗?我发现有几个网站显示要添加加载项,但是关于禁用插件一无所获。 我的Firefox配置文件: 问题是默认情况下启用了某些插件。Adobe Acrobat,Google Update,Java,Microsoft Office,Flash,Director和Silverlight的Shockwave。 我需要禁用其中