我需要使用扩展程序测试Firefox。我想自动化测试并访问几个网站。
我安装了Selenium,它在geckodriver
中打开。但是,扩展名不存在。我可以从about:debugging
手动安装它,但是问题是我希望Selenium测试在扩展名已经存在的情况下启动gecko驱动程序。这该怎么做?如何从硒中启动geckodriver
时将扩展名永久地安装在geckodriver
中?
编辑: 我还尝试从Firefox扩展程序网站安装扩展程序(将其添加到浏览器)。它被添加了,但是一旦我关闭了壁虎窗口,该扩展将在下一次运行中消失。如何永久安装?
答案 0 :(得分:2)
您需要通过指定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);
答案 1 :(得分:2)
注意:OP未指定语言,因此此答案适用于Python。其他Selenium WebDriver语言绑定具有类似的机制来创建配置文件和添加扩展。
您可以在每次实例化驱动程序时安装扩展程序。
首先,从https://addons.mozilla.org下载所需的扩展名(XPI文件)。
然后,在您的代码中...创建一个FirefoxProfile()
并使用add_extension()
方法添加扩展名。然后,您可以使用该配置文件实例化驱动程序。
例如,这将使用包含“ HTTPS Everywhere”扩展名的新创建的配置文件启动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)
答案 2 :(得分:1)
您可以在特定的 Firefox配置文件中永久安装扩展程序并使用它。为此,您需要执行以下提到的步骤:
https://addons.mozilla.org/en-US/firefox/
现在,您可以使用以下 Java 解决方案打开包含扩展名 HTTPS Everywhere <的 Firefox配置文件 FirefoxExtensionProfile / em>
代码块:
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");
}
}
浏览器快照: