Автоматизируйте ввод текста в поле, где редактируемое поле определено в угловых единицах, и мой тестовый каркас - селен webdriverio - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь ввести текст в поле формы.Действие на поле определяется в угловых, и я не могу найти редактируемый объект.,Вот мой фрагмент кода:

**Scenario**:
When I enter "xyz" into the "Headline" field
// Entering strings
When('I enter( the) {string} into the {string} field', enterText);
**selection**
/**
 * Enters specific text into an element
 * @param {string} text The text to enter
 * @param {string} field The field key for an element
 * @returns {Promise<WebElement|Error>} The obtained element as a promise
 */
export async function enterText(text, field) {
  console.log('enter text 1');
  const element = getSelector(field);
  console.log(element);
  await World.browser.setValue(element, text);

Код, в котором должен быть введен текст, написан в угловом формате, а текст вводится в тег

, а не в тег

У меня естьпопытался использовать css в качестве селектора div > storyline-editor > cue-storyline > div > cue-story-element-editor-container > mouse-handler > ng-transclude > div > cue-story-element-editor > cue-text-story-element-editor > mouse-handler > ng-transclude > cue-rte > div > div > p

Если я использую селектор выше в IDE Селена и запускаю код, он работает нормально, но он не работает для моей платформы

1) Проверка элементов страницы новой статьи14Я ввожу «Заголовок теста» в поле «Заголовок»: [chrome #0-0] unknown error: cannot focus element

1 Ответ

0 голосов
/ 30 мая 2019

Вы увидите Failed: unknown error: невозможно сфокусировать ошибку элемента, когда вы пытаетесь установить значения для элемента, который не является входом.

Вам нужно установить фокус или выполнить щелчок по элементу, прежде чем устанавливать значение для него.

export async function enterText(text, field) {
console.log('enter text 1');
const element = getSelector(field);
console.log(element);
await element.click()
await World.browser.setValue(element, text);

Если это не работает, используйте метод execute javascript.

...