1

我正在尝试使用以下命令在 Selenium Junit 4 测试用例中检查链接配置文件(在配置文件 - 编辑配置文件下)的字符串“教育 + 添加学校”:

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

当我查看网页源时,搅拌出现在:

教育 +添加学校

assertTrue 在 chrome 中按预期返回 True 或通过验证。但是在 IE 8 中我得到 assertionFailedError。我使用的是 windows 7 和 Selenium 2.21.0 。

我不确定为什么不同浏览器的行为不同。

代码如下所示:

公共类 test12 扩展 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 时,您应该将 Internet 选项下的安全选项更改为全部选中或全部取消选中“启用保护模式”(对于 Internet、本地、受信任和受限制)。另一个可能干扰的设置是兼容模式。运行测试时在 IE8 浏览器中按 F12 并查看浏览器和文档模式。如果其中任何一个说兼容模式​​,您应该找到兼容模式设置并将其关闭。

如果您找不到这些设置中的任何一个,请告诉我,我可以为您截屏(尽管我正在运行 IE9),如果它不起作用,请说明,因为那时我很想知道解决方案!:)

编辑:

通过访问元素并检查元素中的文本来解决。使用代码:

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