как отправить текст в textarea в элементе div с помощью Selenium - PullRequest
0 голосов
/ 30 мая 2018

Screenshot of div element which has hidden textarea

Как отправить текст или ввести данные в поле textarea, используя Selenium Automation ?

Этоdiv элемент с style="overflow:hidden".Я пытался использовать XPath, но у меня это не сработало.

Как я могу ввести textarea, показанный на изображении?

Ответы [ 3 ]

0 голосов
/ 31 мая 2018

Попробуйте это:

driver.findElement(By.xpath("//div[@class='input_area']//textarea"))
      .sendKeys("Your Value");
0 голосов
/ 05 июня 2018

Возможно, что textarea родительские элементы над ним расположены внутри frame.Пожалуйста, проверьте HTML-код вашей страницы и найдите все фреймы, обертывающие textarea.

. Если это так, вы можете временно переключиться на фрейм перед выполнением sendKeys():

driver.switchTo().frame(arg).Вы можете выбрать любую из подписей ниже.

/**
 * Select a frame by its (zero-based) index. Selecting a frame by index is equivalent to the
 * JS expression window.frames[index] where "window" is the DOM window represented by the
 * current context. Once the frame has been selected, all subsequent calls on the WebDriver
 * interface are made to that frame.
 *
 * @param index (zero-based) index
 * @return This driver focused on the given frame
 * @throws NoSuchFrameException If the frame cannot be found
 */
WebDriver frame(int index);

/**
 * Select a frame by its name or ID. Frames located by matching name attributes are always given
 * precedence over those matched by ID.
 *
 * @param nameOrId the name of the frame window, the id of the <frame> or <iframe>
 *        element, or the (zero-based) index
 * @return This driver focused on the given frame
 * @throws NoSuchFrameException If the frame cannot be found
 */
WebDriver frame(String nameOrId);

/**
 * Select a frame using its previously located {@link WebElement}.
 *
 * @param frameElement The frame element to switch to.
 * @return This driver focused on the given frame.
 * @throws NoSuchFrameException If the given element is neither an IFRAME nor a FRAME element.
 * @throws StaleElementReferenceException If the WebElement has gone stale.
 * @see WebDriver#findElement(By)
 */
WebDriver frame(WebElement frameElement);
0 голосов
/ 30 мая 2018

Я считаю, что вы ошибаетесь в нескольких вещах:

  1. Вы не отправляете текст в div, вы отправляете его в текстовую область.
  2. Текстовая область не имеетстиль скрытый *.Это хорошо видно на предоставленном вами скриншоте.
  3. Родительский div также не имеет стиля скрытого *.Если это так, вы не сможете увидеть дочернюю текстовую область.
  4. У родительского div есть есть style="overflow: hidden", который скрывает только то, что не видно внутри его «ящика», но ононе скрывает весь элемент.

Надеюсь, это поможет.Я рекомендую освежить HTML и CSS, прежде чем пытаться автоматизировать страницу.

* Может быть внешний CSS-файл, который может применить стиль скрытого, но так как мы видим текстовую область на скриншотеЯ не верю, что это так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...