问题描述
我无法在 Selenium Webdriver 3 中为 Firefox 设置默认配置文件,因为 FirefoxDriver
类中没有这样的构造函数.
I can't set a default profile for Firefox in Selenium Webdriver 3 because there is no such constructor in the FirefoxDriver
class.
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.ProfilesIni;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class SeleniumStartTest {
@Test
public void seleniumFirefox() {
System.setProperty("webdriver.gecko.driver", "C:\Users\FirefoxDriver\geckodriver.exe");
ProfilesIni profileIni = new ProfilesIni();
FirefoxProfile profile = profileIni.getProfile("default");
WebDriver driver = new FirefoxDriver(profile);
driver.get("http://www.google.com");
}
}
Java 代码中的编译错误:Java 代码
Compile error in Java code:Java Code
Maven pom.xml
依赖项:Selenium 3.14.0
Maven pom.xml
dependencies:Selenium 3.14.0
火狐版:Firefox 62.0.2 版
推荐答案
当您使用 Selenium 3.14.0 时,按照 FirefoxDriver 类有效的构造函数是:
As you are using Selenium 3.14.0 as per the FirefoxDriver Class the valid constructors are:
FirefoxDriver()
FirefoxDriver(FirefoxOptions options)
FirefoxDriver(GeckoDriverService 服务)
FirefoxDriver(GeckoDriverService 服务,FirefoxOptions 选项)
FirefoxDriver(XpiDriverService 服务)
FirefoxDriver(XpiDriverService 服务,FirefoxOptions 选项)
因此,根据您的代码尝试,以下不是调用 FirefoxDriver()
So, as per your code attempts the following is not a valid option to invoke FirefoxDriver()
WebDriver driver = new FirefoxDriver(profile);
解决方案
要使用默认配置文件调用 invoke FirefoxDriver()
,您需要使用 setProfile(profile)
方法来设置 FirefoxProfile 通过一个 FirefoxOptions()
实例,您可以使用以下代码块:
Solution
To invoke invoke FirefoxDriver()
with the default profile you need to use the setProfile(profile)
method to set the FirefoxProfile through an instance of FirefoxOptions()
and you can use the following code block:
代码块:
Code Block:
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;
import org.testng.annotations.Test;
public class A_FirefoxProfile {
@Test
public void seleniumFirefox() {
System.setProperty("webdriver.gecko.driver", "C:/Utility/BrowserDrivers/geckodriver.exe");
ProfilesIni profileIni = new ProfilesIni();
FirefoxProfile profile = profileIni.getProfile("default");
FirefoxOptions options = new FirefoxOptions();
options.setProfile(profile);
WebDriver driver = new FirefoxDriver(options);
driver.get("http://www.google.com");
System.out.println(driver.getTitle());
}
}
控制台输出:
Console Output:
[RemoteTestNG] detected TestNG version 6.14.2
1537775040906 geckodriver INFO geckodriver 0.20.1
1537775040923 geckodriver INFO Listening on 127.0.0.1:28133
Sep 24, 2018 1:14:30 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Google
PASSED: seleniumFirefox
===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
===============================================
===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
这篇关于如何在 Selenium Webdriver 3 中为 Firefox 驱动程序设置默认配置文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!