Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Как выделить часть текста/текст средствами selenium?

selenium
webdriver
Теги: #<Tag:0x00007fedc3c5a6d0> #<Tag:0x00007fedc3c5a518>

(Andreww) #1

Как выделить часть текста/текст средствами selenium?


(Vasiliy Rakshin) #2

Никак. Таких средств у Селениума нет.


#3

Если это инпут то можно Keys.chord(Keys.Shift,Keys.RIGHT)


(Yaroslav Pernerovskyy) #4

Можно с помощью Actions сделать нечто подобное, но надо заморочится.


(Andreww) #5

а можно по подробнее?


(Andreww) #6

я знаю что можно через drag and drop, но как получить часть текста как webelement?


(Yaroslav Pernerovskyy) #7

“как получить часть текста как webelement?” вот этого не понял вообще )

Если вам нужно буквально выделить часть текста и скопировать в буфер, а потом вставить куда-то, то с помощью Actions вы можете это сэмулировать примерно как-то так:

moveByOffset(x1,y1).clickAndHold().moveByOffset(x2,y2).release().keyDown(Keys.Ctrl).keyDown(Keys.C).keyUp(Keys.C).keyUp(Keys.Ctrl).moveToElement(target).keyDown(Keys.Ctrl).keyDown(Keys.V).keyUp(Keys.V).keyUp(Keys.Ctrl)


(Сергей Кузьмин) #8

@Andreww а уточните пожалуйста под “выделить” что вы имеете в виду ? напр. http://www.java2s.com/Code/Java/Regular-Expressions/Extractasubstringbymatchingaregularexpression.htm это выделить или нет ?


(Ramon Menezes) #9

а какова цель этого всего ? если есть конкретное условие, к примеру выбрать первых 3 символа…ну тогда возьмите весь текст и обрежьте средствами ЯП на котором пишите, во всех остальных вариантах алгоритм будет примерно такой же


(Andreww) #10

выделить текст в браузере, провести форматирование текста (сделать его жирным, поменять шрифт и т.д.) и проверить это…


(Алеся) #11

используйте клавиатуру, то как бы Вы делали с помощью клавиатуры и класс Actions:

  1. используя moveByOffset:
    Actions actions = new Actions(driver); actions.moveToElement(element, x1, y1) .clickAndHold() .moveByOffset(x2, y2) .release() .perform();
  2. Используя клавиатуру:
    clickAndHold + Keys.CTRL+ Keys.Shift + Keys.ArrowRight + Release + Perform что-то такое

(Ramon Menezes) #12

давайте еще раз, у вас есть веб морда, сорци которой лежат где то на хостинге… ок, и вы хотите что то в этом поменять ))) у всего адекватного мира есть 2 варианта решения

  1. сделать изменения в коде
  2. делать это с помощью заинжекченых жава скриптов (это таки можно сделать через вызов скрипта через WD)
    но у меня остается последний вопрос, если у вас есть плейн текст без форматирования (ну так, к примеру), и вам нужно выделить жирным шрифтом (значение из потолка) 8 слово в 3 абзаце то сомневаюсь что таковое можно. и даже если вы с помощью Екшнов чегото сможете физичесски выделить то дальше с этим сделать ничего нельзя )))
    другой вариант это если у вас …не помню как называется…панель форматирования html текста…тут согласен, все пляски с бубном описаны выше будут работать. сам с таким стыкался…только же этого нет в последних 12 ответах и описании темы ))

(Lev Yarushin) #13

Скорее всего у вас какой-нибудь WYSIWYG-редактор.
Я в своё время решал аналогичную проблему с MediumEditor так:

  1. Очищал editable-элемент (обычно div)
  2. Отправлял в него несколько уникальных фраз без пробелов, разделяя их enter
  3. т.к. MediumEditor оборачивает эти фразы в <p></p> то выделял их двойным кликом

Картинка для лучшего понимания:

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


(Andreww) #14

спасибо


(Дима Дубык) #15

У WYSIWYG чаще всего API есть, который можно дергать через jsExecutor