Селен несколько ошибок: нет такого элемента: Не удается найти элемент: {«метод»:»селектор css»,»селектор»:»#имя»}

#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());
}
}
 

Веб-страница chrome отказывается подключаться.

Комментарии:

1. Является ли элемент с id = name уникальным ? это в порту просмотра Selenium ? Вы проверили наличие iframe ? также немного поспи, а затем проверь

2. @cruisepandey Идентификатор уникален для этого элемента в этом html-файле, но это не единственный элемент с именем идентификатора во всех html-шаблонах, имеет ли это значение? Я попытался изменить уникальный идентификатор, но теперь меня ожидают: <Регистрация>, но было: <Регистрация><> Я не уверен, как проверить iframe или что вы подразумеваете под портом просмотра selenium. По ИДЕЕ, я просто выполняю класс, содержащий тесты селена.

3. @cruisepandey Я добавил изображение выше, показывающее, что я вижу в chrome.

4. на изображении, которым вы поделились, не отображается фактическое название.

5. @cruisepandey Его локальный хост