我正在尝试使用以下命令检查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);