2017-01-19 6 views
0

​​を動作させることができません。WebDriverManager for PhantomJSDriverが動作しない

:これは私のコード/テストです

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-server</artifactId> 
    <version>3.0.1</version> 
    </dependency> 
<dependency> 
    <groupId>io.github.bonigarcia</groupId> 
    <artifactId>webdrivermanager</artifactId> 
    <version>1.5.1</version> 
</dependency> 

:私は私のpom.xmlでこれらの依存関係を持っている

System.setProperty("phantomjs.binary.path", "E:/phantomjs-2.1.1-windows/bin/phantomjs.exe"); 

:私はこのようなシステムプロパティを設定しなくてもPhantomJSDriverを使用したいです

import static org.junit.Assert.assertEquals; 
import org.junit.Test; 

public class TestA { 

    WebDriver driver; 

    @BeforeClass 
    public static void setupClass() { 
     PhantomJsDriverManager.getInstance().setup(); 
    } 

    @Before 
    public void setUp() { 
     driver = new PhantomJSDriver(); 
    } 

    @Test 
    public void test() { 
     driver.get("https://www.google.de/"); 
     System.out.println(driver.getTitle()); 
     assertEquals("Google", driver.getTitle()); 
    } 
} 

テストが失敗した:

org.junit.ComparisonFailure: expected:<[Google]> but was:<[]> 

誰かが私が間違っていることを知っていますか?前もって感謝します!


UPDATE:今、私は別の問題を抱えています。

DesiredCapabilities dc = DesiredCapabilities.phantomjs(); 
dc.setJavascriptEnabled(true); 
dc.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, 
       new String[] { "--web-security=no", "--ignore-ssl-errors=yes" }); 

System.setProperty("phantomjs.binary.path", "E:/phantomjs-2.1.1-windows/bin/phantomjs.exe"); 
WebDriver driver = new PhantomJSDriver(dc); 

、私はSystem.setProperty(...)で行を削除すると、それはもはや機能していない:webdrivermanagerを使用する前に、私はこれを持っていました。助けてくれてありがとう。

+0

PhantomJSバイナリが実際にダウンロードされたことを確認してください。そのコードから、ログを生成することがわかります。それらを質問に添付するか、それを使って解決してください。 – Moshisho

答えて

3

アサーションを早めに作成しているように見えるので、getTitle()を呼び出すとページが読み込まれません。あなたのプリントは何をプリントアウトしますか?

ページタイトルが「Google」になっていることが分かっている場合は、テストを待つことをお試しください。それ以上のアサーションを行う前にそれが真であるのを待つのはなぜですか?ページのタイトルが予想どおりであれば、ページが読み込まれることを合理的に確信できます。これを試してください:

public Boolean waitForPageIsLoaded(String title) { 
    return new WebDriverWait(driver, 10).until(ExpectedConditions.titleIs(title)); 
} 
+0

何らかの理由で私はFirefoxDriverでも同じテストがうまくいくと思っていましたが、実際はそうではありません。あなたの答えは私のために働いています、ありがとう! – Marco

+0

私は別の問題が今、私の質問を更新しました。多分あなたもそれに答えることができますか? – Marco

+0

新しい質問を投稿 – Cathal

関連する問題