我得到的错误: java.lang.AssertionError: 预期:0 实际:1
但在我的代码中,我实际上期望它是'1'
@Test
public void d_test2X4() {
driver.switchTo().defaultContent();
driver.findElement(By.id("rows")).clear();
driver.findElement(By.id("cols")).clear();
WebElement rows;
rows = driver.findElement(By.id("rows"));
rows.sendKeys("2");
WebElement col;
col = driver.findElement(By.id("cols"));
col.sendKeys("4");
click_go = driver.findElement(By.cssSelector("button"));
click_go.click();
driver.switchTo().frame(driver.findElement(By.id("eyein-iframe")));
Assert.assertEquals(driver.findElements(By.id("media-item-7")).size(), 1);
driver.quit();
}
我希望'media-item-7'为'1' 它适用于另一个执行几乎相同流程的@test
检查:
<ul>
<li id="media-item-0" class="plugin-media-item media-item" style="width: 22.5%; margin: 0px 1.25%;" data-index="0"></li>
<li id="media-item-1" class="plugin-media-item media-item" style="width: 22.5%; margin: 0px 1.25%;" data-index="1"></li>
<li id="media-item-2" class="plugin-media-item media-item" style="width: 22.5%; margin: 0px 1.25%;" data-index="2"></li>
<li id="media-item-3" class="plugin-media-item media-item" style="width: 22.5%; margin: 0px 1.25%;" data-index="3"></li>
<li id="media-item-4" class="plugin-media-item media-item" style="width: 22.5%; margin: 0px 1.25%;" data-index="4"></li>
<li id="media-item-5" class="plugin-media-item media-item" style="width: 22.5%; margin: 0px 1.25%;" data-index="5"></li>
<li id="media-item-6" class="plugin-media-item media-item" style="width: 22.5%; margin: 0px 1.25%;" data-index="6"></li>
<li id="media-item-7" class="plugin-media-item media-item" style="width: 22.5%; margin: 0px 1.25%;" data-index="7">
<div class="media-header"></div>
答案 0 :(得分:0)
如果您查看junit API,您会看到:
assertEquals(String expected, String actual)
所以基于你说你期望值为1然后1应该在第一个位置(预期)而你的findElements.size在第二个位置(实际)。我想你要做的是:
Assert.assertEquals(1, driver.findElements(By.id("media-item-7")).size());
答案 1 :(得分:0)
首先检查以下网络元素是否可搜索: -
案例1: - 尝试以下代码而不切换到iframe。如果找到,那么其他尝试案例2
案例2: - 首先切换到iframe,然后在代码下面运行。
try {
wait = new WebDriverWait(driver, 2);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("media-item-7")));
System.out.println("Web element is present");
}catch(ElementNotFoundException e1){
System.out.println("Element is not present");
}
如果网页元素是可搜索的,那么只尝试
Assert.assertEquals(1,driver.findElements(By.id(&#34; media-item-7&#34;))。size());
我认为在您的情况下,网页元素无法搜索。此外,您切换到iframe,因此请确保您的网络元素属于iframe(使用开发人员工具检查iframe并检查您的网络元素 media-item-7 是否属于它)
答案 2 :(得分:-1)
由于某种原因,它只是没有找到这个确切的元素。
等待解决:wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("media-item-7")));