Im используя транспортир для e2e testing.i хочет, чтобы нажать кнопкиКак нажимать кнопки без элемента ID
ответ
Есть ли какая-либо причина вы не используете транспортир API, но драйвер напрямую? Выбор Нг-клик не может быть лучшим подходом здесь, а также (хорошая практика, как представляется, выбор на основе структуры страницы, а не механики), я бы рекомендовал вам исследовать, если вы не можете просто использовать by.buttonText:
element(by.buttonText('Place Order'));
EDIT: Глядя на то, как селектор выполнен, выше не будет работать - пожалуйста, обратите внимание by.buttonText будет соответствовать только:
- кнопка
- вход типа = "кнопку"
- input type = "submit"
Я сохраняю это для всех, кому это может понадобиться в будущем.
Если это не сработает, возможно, вы могли бы по крайней мере выбрать его по классу, например. внутри родителя? Например:
element(by.css('.btn-wrapper > .btn:nth-child(2)'));
Кроме того, рассмотрите возможность добавления отдельного класса/идентификатора для кнопки, возможно, это будет полезно позже.
Последнее замечание, если у вас есть большая страница для тестирования, рассмотрите возможность использования page objects вместо того, чтобы выбирать один и тот же материал в отдельных шагах. Таким образом, вместо того, чтобы писать селектор, вы будете иметь хороший, ремонтопригодны объект, который можно использовать как:
myPage.placeOrderButton().click();
Просто что-то рассмотреть.
Место кнопка заказа:
$('[ng-if*="checkout"]').click();
Кнопка Отмена:
$('[ui-sref="main.store.featured"]').click();
Это должно работать:
element(by.css('[ng-click="ctrl.placeOrder()"]')).click();
Я думаю, самый простой и самый читаемый подход здесь будет найдите элемент по тексту:
element(by.xpath('//div[. = "Place Order"]'));
Вы можете просто нужно добавить wait for element to become visible:
var EC = protractor.ExpectedConditions,
placeOrder = element(by.xpath('//div[. = "Place Order"]'));
browser.wait(EC.visibilityOf(placeOrder), 5000);
placeOrder.click();
Я думаю, из-за того, что эта «кнопка» сделана, селектор фактически не будет соответствовать ей. Я бы сказал, что наилучшим подходом было бы изменить html, чтобы он соответствовал любому из них: https://github.com/angular/protractor/pull/455/files#diff-89f02ac1eed840a7f24ba7f0c2411178R376 – wap300
@ wap300 oh, yeah , хороший момент, это элемент 'div'. Я обновлю ответ. – alecxe
Я не знаю, если это поможет, но я нашел статью, в которой кто-то возникают проблемы, нажав на делах. Это кажется многовато для просто нажав на DIV, но я полагал, что ссылка может помочь вам
https://adventuresintesting.wordpress.com/tag/protractor-doesnt-click-div/
- 1. Как нажимать кнопку без id на casperjs
- 2. js как нажимать кнопку без id?
- 3. Выбор элемента без Id
- 4. Как нажимать кнопки Android?
- 5. Поиск элемента без ID
- 6. Как нажимать на кнопку Javascript в Selenium без ID (Java)?
- 7. Как нажимать кнопки значения jquery
- 8. Как нажимать без тяги?
- 9. Как установить @entity без элемента @id?
- 10. Как нажимать кнопки ячеек в UITableViewCell без действия сокета ячейки
- 11. Извлечение элемента без имени или id
- 12. Как нажимать на текст, кнопки появляются/исчезают?
- 13. Кнопка нажимать на другие кнопки
- 14. Отправить форму с использованием элемента без ID
- 15. Пользовательский лист: кнопки нельзя нажимать
- 16. Получить значение элемента HTML без ID?
- 17. Как нажимать только невыбранные кнопки webdriver Java
- 18. Django: лучший способ нажимать кнопки без перезагрузки страницы?
- 19. css ID с или без HTML-элемента?
- 20. Как нажимать физические кнопки андроида программно
- 21. Как нажимать другие кнопки, пока нить спала
- 22. Как нажимать на ссылку после нажатия кнопки «Отправить»
- 23. вызова SetTimeout без элемента ID в Javascript
- 24. Установите значение элемента по имени класса, без ID элемента
- 25. Нельзя нажимать на кнопки в HBox
- 26. Как наложить xul без id?
- 27. Иконки ID кнопки изображения?
- 28. Как управлять содержимым кнопки без использования id; Android?
- 29. Как размыть без определенного элемента
- 30. Как заменить имя класса для элемента без ID?
показать код ...... –
@vignesh, пожалуйста, измените вопрос и добавить код там - не в комментариях –
Откройте консоль браузера и попробуйте выбрать один и тот же элемент с помощью селектора, который вы использовали, и посмотрите, работает ли он. Если не настроить его. – Chandermani