我正在尝试使用Firefox分析。但是它在代码的下面一行抛出了错误。请查看所附的快照
请,有人可以帮忙吗?
代码:-
WebDriver driver = new FirefoxDriver(prof);
错误:->
构造函数FirefoxDriver(FirefoxProfile)未定义
我正在使用的以下版本:-
代码:
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;
public class Gmail {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "D:\\Drivers\\geckodriver.exe");
ProfilesIni allProf = new ProfilesIni();// all profiles
FirefoxProfile prof = allProf.getProfile("Abhi_Selenium");
WebDriver driver = new FirefoxDriver(prof);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://gmail.com");
答案 0 :(得分:2)
没有这样的构造函数来获取配置文件并创建驱动程序。那就是异常告诉你的。您可以在此处查看javadoc:
https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/firefox/FirefoxDriver.html
您可以尝试类似的操作:
FirefoxOptions options = new FirefoxOptions();
options.setProfile(yourProfile);
FirefoxDriver driver = new FirefoxDriver(options);
答案 1 :(得分:0)
如果您查看 Selenium Java Client v3.13.0 中FirefoxDriver
类的 Java文档,则有效的构造函数与如下:
FirefoxDriver()
FirefoxDriver(FirefoxOptions options)
FirefoxDriver(GeckoDriverService service)
FirefoxDriver(GeckoDriverService service, FirefoxOptions options)
FirefoxDriver(XpiDriverService service)
FirefoxDriver(XpiDriverService service, FirefoxOptions options)
很明显,根据您的代码试用,以下代码行不是有效的选择:
WebDriver driver = new FirefoxDriver(prof);
因此您看到的错误为:
The constructor FirefoxDriver(FirefoxProfile) is undefined
自动建议如下:
作为解决方案:
可以将FirefoxProfile
的实例转换为DesiredCapabilities()
类型的对象,然后将merge()
转换为FirefoxOptions()
类型的对象,如下所示:
ProfilesIni profile = new ProfilesIni();
FirefoxProfile testprofile = profile.getProfile("Abhi_Selenium");
DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setCapability(FirefoxDriver.PROFILE, testprofile);
FirefoxOptions opt = new FirefoxOptions();
opt.merge(dc);
WebDriver driver = new FirefoxDriver(opt);
或者您可以通过setProfile()
的实例直接使用FirefoxOptions()
方法,如下所示:
ProfilesIni profile = new ProfilesIni();
FirefoxProfile testprofile = profile.getProfile("Abhi_Selenium");
FirefoxOptions opt = new FirefoxOptions();
opt.setProfile(testprofile);
WebDriver driver = new FirefoxDriver(opt);
注意:要在 Test Execution 中使用现有的 Firefox配置文件,您必须先创建 Firefox配置文件手动按照Creating a new Firefox profile on Windows上的说明进行操作。