Selenium 3.0.1 で Firefox を起動するテストを JUnit で作成しました。しかし、Firefox Portable バージョンに問題があります。私のマシンにFirefoxがインストールされていれば、この問題はありません。
私のテストは非常に簡単です:
public class SeleniumTest extends FluentTest {
WebDriver webDriver = new FirefoxDriver();
static {
// 1) Work with native Firefox
System.setProperty("webdriver.gecko.driver", ClassLoader.getSystemResource("webdriver/geckodriver_0.11.1.exe").getFile());
// 2) Don't work when I add these 2 properties
// System.setProperty("webdriver.firefox.marionette", "true");
// System.setProperty("webdriver.firefox.bin", "D:\\firefox-portable\\FirefoxPortablex64-48.0.2\\FirefoxPortable.exe");
}
@Test
public void test() {
System.out.println("test is executed");
}
}
ケース番号 2 では、Firefox ポータブル バージョンを実行するために必要なプロパティを追加しますが、テストは「localhost:52702 の Marionette に接続する」ステップでロックされたままになります。そして、何でも起こります。
1478965841203 geckodriver INFO Listening on 127.0.0.1:45941
nov. 12, 2016 4:50:41 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFOS: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
1478965841598 mozprofile::profile INFO Using profile path d:\Profiles\<username>\AppData\Local\Temp\rust_mozprofile.TisH4gXwlj3K
1478967041359 geckodriver::marionette INFO Starting browser D:\firefox-portable\FirefoxPortablex64-48.0.2\FirefoxPortable.exe
1478967041388 geckodriver::marionette INFO Connecting to Marionette on localhost:52702
しかし、ネイティブの Firefox では、次のステップが表示され、テストが実行されます。
1478967281791 Marionette INFO Listening on port 53224
1478967283064 Marionette INFO startBrowser d3c2b382-5643-4149-9168-57fd36a43678
nov. 12, 2016 5:14:43 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFOS: Detected dialect: W3C
test is executed
最後に、私は Firefox ポータブル版をより柔軟で独立したものにしたいと考えています。
私の環境:Jdk 8 / Selenium 3.0.1 / FluentLenium 3.0.2 / GeckoDriver 0.11.1 / Native Firefox:49.0.2 / Firefox Portable edition:48.0.2および49.0
どんな助けでも感謝します。