, поэтому я просто пытался интегрировать свой угловой проект с транспортиром, и у меня возникла проблема. У меня есть разметки HTML, как это:Транспортир дает неправильную ошибку выбора
<tr ng-repeat="(key, myLstItem) in shadowMyLst" class="show-on-hover-subject" ng-click="editSurvey(myLstItem.id, myLstItem.name, 1)" id="questionnaire-{{key}}">
...
</tr>
и мой транспортир разметки, как это:
beforeEach(function() {
browser.driver.get(CI_URL);
browser.driver.findElement(by.name('ci-email-login')).sendKeys(CI_EMAIL);
browser.driver.findElement(by.name('ci-username-login')).sendKeys(CI_USERNAME);
browser.driver.findElement(by.name('ci-go-login')).click();
browser.driver.sleep(1);
browser.waitForAngular();
browser.driver.findElement(by.id('questionnaire-0')).click();
});
, когда я бегу, я получаю эту ошибку:
Failed: no such element: Unable to locate element: {"method":"css selector","selector":"*[id="questionnaire-0"]"}
Я используя by.id
в качестве селектора, и он говорит, что im использует селектор css. Я здесь что-то не так? Благодарю.
Вы проверили html-документ, если id = "questionnaire-0" отображается правильно? – sdfacre
Да. Я также добавил 'browser.waitForAngular();' просто чтобы убедиться, что ng-repeat был закончен, прежде чем найти элемент. Он был там в порядке, проблема в том, что он не может найти элемент, потому что по какой-то причине Protractor говорит, что я использую селектор css, в то время как в моем коде я использую 'by.id'. – Growlithe
Похоже, что webdriver преобразовал ваш локатор by.id в селектор css. Является ли процесс входа в систему, когда вы вводите учетные данные, является угловой страницей? .. Если это не ждет, то может потребоваться, чтобы не удалось. – Jesse