1

次のコマンドを使用して、Selenium Junit 4テストケースのリンクされたプロファイル(プロファイルの下で-プロファイルの編集)の文字列「教育+学校の追加」を確認しようとしています:

assertTrue(selenium.isTextPresent("教育 + 学校の追加"));

Web ページのソースを表示すると、次の場所に攪拌が表示されます。

教育 +学校 を追加

assertTrue は True を返すか、Chrome で期待どおりに検証に合格します。しかし、IE 8 では assertionFailedError が発生します。

ブラウザーによって動作が異なる理由はわかりません。

コードは次のようになります。

public class test12 extends SeleneseTestCase {

    @Before
    public void setUp() throws Exception {selenium = new DefaultSelenium("localhost", 4444, "*iexplore", "https://www.linkedin.com/");
    selenium.start();
    }

@Test
public void testTest12() throws Exception {
    selenium.open("/uas/login?goback=&trk=hb_signin");
    selenium.type("id=session_key-login", "xxxxx");
    selenium.type("id=session_password-login", "xxxxxx");
    selenium.click("id=btn-primary");
    selenium.waitForPageToLoad("30000");

    selenium.click("link=Edit Profile");
    selenium.waitForPageToLoad("30000");

    assertEquals("Improve your Profile", selenium.getText("css=a  [name=\"guidedEdit\"] > span"));
    assertTrue(selenium.isElementPresent("id=yui-gen8"));

    //the below assertion failes in I.E 8,but it runs fine in chrome
    assertTrue(selenium.isTextPresent("Education + Add a school"));

    assertTrue(selenium.isElementPresent("css=#yui-gen7 > span.edit"));
    assertEquals("Edit Profile | Linked", selenium.getTitle());

}

@After
public void tearDown() throws Exception {
    selenium.stop();
}

}

4

1 に答える 1

0

これは、IE8 の設定が原因である可能性があります。

IE で Selenium を実行している場合は、[インターネット オプション] の [セキュリティ オプション] を変更して、[保護モードを有効にする] をすべてオンにするか、すべてオフにする必要があります (インターネット、ローカル、信頼済み、および制限付き)。干渉する可能性のある別の設定は、互換モードです。テストの実行時に IE8 ブラウザーで F12 を押し、ブラウザー モードとドキュメント モードを確認します。これらのいずれかが互換モードを示している場合は、互換モード設定を見つけてオフにする必要があります。

これらの設定のいずれかが見つからない場合は、私に知らせてください。スクリーンショットを作成できます (私は IE9 を実行しています)。解決策を知りたいので、うまくいかない場合は教えてください。:)

編集:

要素にアクセスし、要素からテキストを確認することで解決しました。コードの使用:

 String checkForEducation = selenium.getText("id=yui-gen10"); 
 assertEquals("Education + Add a school", checkForEducation);
于 2012-05-17T22:52:57.883 に答える