【发布时间】:2016-03-09 15:36:09
【问题描述】:
我在 selenium 中制作了一个完美重复的测试用例,然后将其导出到 JAVA /JUnit4 / Webdriver:
public void emailInvalid() throws Exception {
driver.get(baseUrl + "/test/contacts.html");
driver.findElement(By.name("companyName")).clear();
driver.findElement(By.name("companyName")).sendKeys("testcomp");
driver.findElement(By.name("phone")).clear();
driver.findElement(By.name("phone")).sendKeys("45454545");
driver.findElement(By.name("email")).clear();
driver.findElement(By.name("email")).sendKeys("test.ee");
driver.findElement(By.name("message")).clear();
driver.findElement(By.name("message")).sendKeys("qwerty");
driver.findElement(By.cssSelector("button.submit")).click();
assertEquals("Not valid email.", driver.findElement(By.cssSelector("span.error.notValidEmail")).getText());
}
Java 中的测试失败,因为 assertEquals 无法获取它要查找的文本。错误信息是
org.junit.ComparisonFailure: 预期: 但原为:
【问题讨论】:
-
检查是否只有一个与此类选择器相关的元素存在,并且它在出现后立即预期文本,并且稍后不会生成文本。另外,请确保此文本确实位于此元素中,而不是任何子元素中
-
@Gadget 它在元素中,我认为这是因为 selenium 在单击提交时使用 clickandWait 但在 JAVA 中它只是单击并且加载速度不够快,因此 assertEqual 为空!我尝试了下面的 mike88 代码,但它只是超时了。
-
我认为你的意思是它与 Selenium IDE 一起工作,但一旦你将它移植到 Selenium WebDriver/Java 就不能工作。您可能想在问题中澄清这些细节。
-
您应该花一些时间调查您的
.getText()为何返回""。您可能需要添加WebDriverWait。 -
请提供 html 代码....其中显示“无效电子邮件”文本..
标签: java unit-testing selenium selenium-webdriver