#java #spring-boot #selenium #testing #junit
Вопрос:
Я пытаюсь протестировать свой веб-сайт с помощью Selenium и часто сталкиваюсь с сетевой ошибкой, но когда я синхронизирую свое время, это позволяет мне подключаться как обычно. Затем, когда я действительно могу запустить тест, я получаю следующую ошибку:
AssertEquals failed expected: 'Register' actually 'localhost'.
Из-за этого я временно изменил ожидаемое значение на «localhost», и теперь я получаю эту ошибку:
no such element: Unable to locate element: {"method":"css selector","selector":"#name"}
Несмотря на то, что мой html:
<div class="col-8">
<input type="text" th:field="*{name}" id="name" pattern="^(ww )s(w )$" title="Please enter letters only and 2 names, with a space separating them." class="form-control" required minlength="2" maxlength="20" placeholder="Name"/>
</div>
Явно включает атрибут » id=»имя»». Я обеспокоен тем, что эти 2 проблемы связаны и, возможно, не отображается правильная страница, но я не знаю, как это исправить, спасибо за любую помощь.
Полный Код:
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureTestDatabase
public class SeleniumTests {
private WebDriver webDriver;
@Test
public void shouldCreateAnAccount() throws Exception {
if (System.getProperty("os.name").equals("Mac OS X")){
System.setProperty("webdriver.chrome.driver", "chromedrivermac");
} else {
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
}
ChromeOptions options = new ChromeOptions();
options.setAcceptInsecureCerts(true);
webDriver = new ChromeDriver(options);
webDriver.get("http://localhost:8080/register");
assertEquals("Register", this.webDriver.getTitle());
//Create a new account and create a new project and contribute to own project.
WebElement name = webDriver.findElement(By.id("name")); // the name field.
name.sendKeys("Tim Stephen"); //enter a name
WebElement email = webDriver.findElement(By.id("email")); // the username field.
email.sendKeys("timstephen@outlook.com"); //enter a username
WebElement password = webDriver.findElement(By.id("password")); // the password field.
password.sendKeys("ExamplePassword72-"); //enter a password
WebElement confirmPassword = webDriver.findElement(By.id("confirmPassword")); // the confirm password field.
confirmPassword.sendKeys("ExamplePassword72-"); //enter a password
webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); // waits 2 seconds before pressing submit button.
webDriver.findElement(By.id("submit")).click();
//section for filling in user information.
assertEquals("Landing", this.webDriver.getTitle());
}
}
Комментарии:
1. Является ли элемент с
id = name
уникальным ? это в порту просмотра Selenium ? Вы проверили наличие iframe ? также немного поспи, а затем проверь2. @cruisepandey Идентификатор уникален для этого элемента в этом html-файле, но это не единственный элемент с именем идентификатора во всех html-шаблонах, имеет ли это значение? Я попытался изменить уникальный идентификатор, но теперь меня ожидают: <Регистрация>, но было: <Регистрация><> Я не уверен, как проверить iframe или что вы подразумеваете под портом просмотра selenium. По ИДЕЕ, я просто выполняю класс, содержащий тесты селена.
3. @cruisepandey Я добавил изображение выше, показывающее, что я вижу в chrome.
4. на изображении, которым вы поделились, не отображается фактическое название.
5. @cruisepandey Его локальный хост