Я практикую Selenium с приложением MVC, которое имеет частичное представление.
Когда страница отображается, я вижу отображаемую форму:
<form action="/MyScreen/SaveData?Length=20" data-ajax="true" data-ajax-complete="handleComplete" data-ajax-failure="CheckError" data-ajax-loading="#loader" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#partialPlaceHolder" id="TicketDetailForm" method="post" novalidate="novalidate">
<div id="partialPlaceHolder" style="width:100%;">
<div id="Ticket-Details"></div>
</div>
</form>
В этой форме есть кнопка, которая мне нужначтобы щелкнуть.
Я использую Подождите, чтобы убедиться, что форма отображается, прежде чем я нажму на кнопку:
WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement ticketForm = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("TicketDetailForm")));
boolean isForm = ticketForm.isDisplayed();
При выполнении кода выше, я получаю следующую ошибку:
Ожидаемое условие не выполнено: ожидание видимости элемента, обнаруженного с помощью By.id: TicketDetailForm.
Я изменил код, чтобы постепенно получить элементы и смог найтиформа и местозаполнитель, где отображается кнопка.
Я использую Wait для поиска содержимого формы:
List<WebElement> forms = renderBody.findElements(By.tagName("form"));
WebElement placeHolder = forms.get(0).findElement(By.xpath("//div[@id='partialPlaceHolder']"));
WebElement ticketDetail = placeHolder.findElement(By.xpath("//div[@id='Ticket_Details']"));
Я не могу найти ticketDetail `WebElement
Что это может быть?