Функционально, Селен не имеет прямой зависимости от того, построен ли AUT 1 через Vue.js , ReactJS или JavaScript . С точки зрения Selenium наиболее важны различные состояния (упомянутые ниже) WebElement , с которыми вы хотите взаимодействовать следующим образом:
present
visible
interactable (i.e. clickable)
Таким образом, вам нужно вызвать официанта, т. Е. WebDriverWait , чтобы требуемый элемент находился в нужном вам состоянии следующим образом:
наличие :
var EC = protractor.ExpectedConditions;
// Waits for the element with id 'abc' to be present on the dom.
browser.wait(EC.presenceOf($('#abc')), 5000);
видимость
var EC = protractor.ExpectedConditions;
// Waits for the element with id 'abc' to be visible on the dom.
browser.wait(EC.visibilityOf($('#abc')), 5000);
интерактивность (т. Е. Clickablity) :
var EC = protractor.ExpectedConditions;
// Waits for the element with id 'abc' to be clickable.
browser.wait(EC.elementToBeClickable($('#abc')), 5000);
В соответствии с HTML , который вы указали для , ждите , пока желаемый элемент не станет активным , вы можете использовать следующее решение:
browser.wait(until.elementIsClickable(By.xpath("//img[@src='img/end_call.svg']")), 20);
1 Тестируемое приложение
Обновление
Согласно вашему обновлению комментария, если элемент становится интерактивным Я не вижу никаких препятствий в отправке character sequence
. Однако, если character sequence
исчезает на после обработки Vue , мы можем использовать ExpectedConditions
как stalenessOf
Здесь вы можете найти аналогичное обсуждение JavaScript __doPostBack
в Как мне ждать вызова JavaScript __doPostBack через Selenium и WebDriver