Selenium 2 :- selenium.isTextPresent在IE8中失败断言,而它在Chrome或Fire



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

assertTrue(selenium.isTextPresent("Education + Add a school"((;

当我查看网页源时,镫子出现在:

教育 + 添加学校

assertTrue 返回 True 或按 chrome 中的预期通过验证。但是在 I.E 8 中,我得到断言失败错误.我正在使用 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();
}

}

这可能是由于您的IE8设置。

在IE中运行selenium时,您应该将Internet选项下的安全选项更改为全部选中或全部未选中的"启用保护模式"(对于Internet,本地,受信任和受限(。另一个可能干扰的设置是兼容模式。运行测试时在 IE8 浏览器中按 F12,并查看浏览器和文档模式。如果其中任何一个说兼容模式,您应该找到兼容模式设置并将其关闭。

如果您找不到任何这些设置,请告诉我,我可以为您截图(尽管我正在运行IE9(,也请说它是否不起作用,因为我有兴趣知道解决方案! :)

编辑:

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

 String checkForEducation = selenium.getText("id=yui-gen10"); 
 assertEquals("Education + Add a school", checkForEducation);

相关内容

  • 没有找到相关文章

最新更新