Моя Java довольно простая, и я очень новичок в Selenium, и я тестирую, как это работает. По какой-то причине в моем коде я могу увидеть результат «assert» в консоли, в то время как в другой части я не могу. Я зарегистрировал сообщения на консоли до и после утверждения (оба из которых показывают), но результат утверждения не работает.Eclipse - Не вижу результата утверждения в консоли
package automationFramework;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import static org.junit.Assert.*;
public class Weather {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.gecko.driver", "//home//aaronh//Documents//Drivers//geckodriver");
// System.setProperty("webdriver.gecko.driver",
// "//home//aaron//JARs//geckodriver-v0.14.0-linux64//geckodriver");
WebDriver driver = new FirefoxDriver();
// launch browser and go to the website
String url = "https://www.bbc.com/weather";
driver.get(url);
driver.manage().window().maximize();
// search weather information for Bristol
WebElement location = driver.findElement(By.name("search"));
location.clear();
location.sendKeys("Bristol, Bristol");
// click search button
WebElement search = driver.findElement(By.name("submitBtn"));
search.click();
// this assertion fails because it checks the title before the search and IS LOGGED TO THE CONSOLE
// for
// Bristol weather has finished
// String bristol = driver.getTitle();
// assertEquals("BBC Weather - Bristol", bristol);
System.out.println("before wait");
WebDriverWait wait = new WebDriverWait(driver, 5);
if (wait.until(ExpectedConditions.titleContains("BBC Weather - Bristol"))) {
String bristol = driver.getTitle();
System.out.println("before assert " + bristol);
// this does not log to the console
assertEquals("BBC Weather - Bristol", bristol);
System.out.println("after assert");
}
driver.close();
System.out.println("Test script executed successfully.");
System.exit(0);
}
}
Может кто-нибудь, пожалуйста, скажите мне, почему выдает результаты в одном месте, а не в другом? Я понимаю, что getTitle бессмысленна, потому что код не получит их, если заголовок не будет тем, что мы утверждаем, но эй, я просто проверяю его.
Спасибо.
Это не утверждение <>(); методы, созданные для исключения исключений и не для входа непосредственно в консоль, используя операцию system.out.print()? Во всяком случае, если утверждение терпит неудачу в точке assertEuals(), вы не должны видеть «после утверждения» -измещения вообще, я верю? Во всяком случае, почему бы не поместить материал, который у вас есть в main(), вместо метода @ Test? :) – vegaasen
Ах кажется, что если утверждение не удастся, оно выведет на консоль (я изменил его, чтобы сравнить с «BBC - Weather - Bristoll»), и это видно. – Rookie