FirefoxDriver
クラスにそのようなコンストラクターがないため、Selenium Webdriver3でFirefoxのデフォルトプロファイルを設定できません。
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コード のコンパイルエラー
Maven pom.xml
依存関係: Selenium 3.14.
Firefoxバージョン: Firefoxバージョン62.0.2
FirefoxDriver クラスに従ってSelenium 3.14.0を使用しているため、有効なコンストラクターは次のとおりです。
FirefoxDriver()
FirefoxDriver(FirefoxOptions options)
FirefoxDriver(GeckoDriverService service)
FirefoxDriver(GeckoDriverService service, FirefoxOptions options)
FirefoxDriver(XpiDriverService service)
FirefoxDriver(XpiDriverService service, FirefoxOptions options)
したがって、コードの試行に従って、以下はFirefoxDriver()
を呼び出すための有効なオプションではありません。
_WebDriver driver = new FirefoxDriver(profile);
_
default profileを使用してinvoke FirefoxDriver()
を呼び出すには、setProfile(profile)
メソッドを使用してFirefoxProfileFirefoxOptions()
のインスタンスを介して、次のコードブロックを使用できます。
コードブロック:
_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());
}
}
_
コンソール出力:
_[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
===============================================
_
セットアップを@BeforeClass
に移動します
私はこのセットアップを使用していますが、問題なく動作します。
@BeforeClass
public static void setUpClass() {
FirefoxOptions options = new FirefoxOptions();
ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile Selenium_profile = allProfiles.getProfile("Selenium_profile");
options.setProfile(Selenium_profile);
options.setBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
System.setProperty("webdriver.gecko.driver", "C:\\Users\\pburgr\\Desktop\\geckodriver-v0.20.0-win64\\geckodriver.exe");
driver = new FirefoxDriver(options);
driver.manage().window().maximize();}
パスとプロファイルの指定を変更するだけです。