我需要使用扩展测试Firefox。我想自动化测试并访问几个网站。
我安装了Selenium,它在geckodriver
中打开。然而,扩展并不存在。我可以从about:debug
手动安装它,但问题是我希望Selenium测试在扩展已经存在时启动gecko驱动程序。怎么做?如何在geckodriver
中永久安装扩展,这样当我从selenium启动geckodriver
时它就在那里了?
编辑:我也试着从火狐扩展网站安装扩展(添加到浏览器)。它被添加,但是一旦我关闭壁虎窗口,扩展在下一次运行中消失。如何永久安装它?
您可以在特定的Firefox配置文件中永久安装扩展/插件并使用它。要实现这一点,您需要遵循以下提到的步骤:
>
https://addons.mozilla.org/en-US/firefox/
现在您可以使用以下Java解决方案打开Firefox Profile FirefoxExtensionProfile包含扩展HTTPS无处不在
>
package A_MozillaFirefox;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.ProfilesIni;
public class A_FirefoxProfile_dc_opt {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
ProfilesIni profile = new ProfilesIni();
FirefoxProfile testprofile = profile.getProfile("FirefoxExtensionProfile");
FirefoxOptions opt = new FirefoxOptions();
opt.setProfile(testprofile);
WebDriver driver = new FirefoxDriver(opt);
driver.get("https://www.google.com");
}
}
浏览器快照:
你可以在以下网站上找到一些相关的讨论:
您需要通过指定firefox的配置文件路径来使用现有配置文件启动geckdriver
对于python,可以通过以下方式实现:
profile = FirefoxProfile('/home/student/.mozilla/firefox/gwi6uqpe.Default') // change this path
browser = webdriver.Firefox(firefox_profile=profile)
对于C#你可以这样做:
string path = @"C:\Users\username\AppData\Local\Mozilla\Firefox\Profiles\myi5go1k.default";
FirefoxProfile ffprofile = new FirefoxProfile(path);
Driver = new FirefoxDriver(ffprofile);
注意:OP没有指定语言,所以这个答案是针对Python的。其他Selenium WebDriver语言绑定具有类似的机制,用于创建配置文件和添加扩展。
每次实例化驱动程序时,都可以安装扩展。
首先,下载你想要的扩展(XPI文件)从:https://addons.mozilla.org.
然后,在您的代码中...创建一个FirefoxProfile()
并使用add_extension()
方法添加扩展。然后您可以使用该配置文件实例化驱动程序。
例如,这将启动带有新创建的包含“HTTPS无处不在”扩展的配置文件的Firefox:
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.add_extension(extension='https_everywhere-2019.1.31-an+fx.xpi')
driver = webdriver.Firefox(firefox_profile=profile)
问题内容: 我有一个Flask项目,已将flask模块(0.9版)直接放在我的app.py文件旁边。我这样做是为了将所有内容捆绑到一个版本控制存储库中,该存储库不需要其他人使用它来安装其他Python模块。 我想使用,所以我尝试通过下载最新版本并将文件放在我的“本地” flask / ext /目录中来手动安装它。然而,尽管我可以和,我无法import flask.ext.login与Python
我只是按照这里投票最多的答案,成功地在我的终端中安装了Visual Studio Code的命令。 但是,每次重启MacBook Pro后,命令都无法启动Visual Studio Code。 是否可以永久安装,这样我就不必每次打开MacBook Pro时都安装它? 我还发现文件夹在我重启笔记本电脑后被删除。 这就是笔记本电脑重启后我无法运行的原因。 为什么将安装在临时文件夹中? 我的MacBoo
我已经安装了mongodb,我可以通过终端访问它。我想在OSX(约塞米蒂)中安装XAMPP的驱动程序。我下载了mongo。因此,将其保存在/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226路径下,该路径是我的扩展名指向并写入的extension=mongo。所以在php中。这是一个文件,但没有运气。
问题内容: 我正在尝试从 Raspberry Pi 上的 Android Things 应用的USB驱动器中读取文件。我可以像这样扫描已安装设备的列表: __ 显示以下输出: 但是,我的拇指驱动器不在列表中。所以我想我需要以某种方式安装它。如何安装拇指驱动器并访问其中的文件? 问题答案: 仅亚行解决方案 到目前为止,USB驱动器似乎尚未自动安装。为了使您的代码正常工作,我必须手动安装它。 如您所见
我想在我的活动中永久隐藏导航栏(而不是整个系统ui)。现在我正在使用这段代码 它隐藏栏,但是当用户触摸屏幕时,它会再次显示。有没有办法永久隐藏它,直到活动;
问题内容: 我正在运行RHEL6,并且已经导出了如下环境变量: 当终端关闭时,该变量丢失。如何永久添加此变量,以便特定用户始终可以使用此变量值? 问题答案: 您可以将其添加到您的Shell配置文件中,例如,或在全局中添加。添加这些行之后,更改将不会立即反映在基于GUI的系统中,您必须退出终端或创建一个新终端,然后在服务器中注销会话并登录以反映这些更改。