Я выполняю определенную задачу автоматизации с использованием python selenium (в настоящее время использую систему Mac) - и по некоторым причинам мой webElement.text
ничего не возвращает для текстового поля, которое я хотел бы скопировать. Поэтому я пытаюсь скопировать и вставить значения, но по какой-то причине .send_keys
работает (поскольку я могу видеть вводимые значения, перемещение курсора и т. Д., Но после шага команда + c у меня нет значений в моем буфере обмена. Я попытался вставить содержимое буфера обмена через модуль xerox, и он извлекает только те материалы, которые я ранее скопировал вручную - содержимое буфера обмена, управляемого селеном, не видно. Мне интересно, как обойти эту проблему?
/ код
from selenium.webdriver.common.keys import Keys
import xerox
elem = browser.find_elements_by_name("callback_url_0")[0]
#elem.send_keys("bar") # for testing purposes, and it works
elem.send_keys(Keys.CONTROL, 'a') #highlight all in box
elem.send_keys(Keys.CONTROL, 'c') #copy
#elem.send_keys(Keys.CONTROL, 'v') #
#xerox.copy()
xerox.paste() #this pastes my old system junk, nothing from the webdriver session
Я даже пробовал Key.COMMAND
, как на Mac, но ничего не изменилось. Любой способ обойти или даже взломать эту проблему?
UPDATE:
Итак, проблема в том, что я работаю с текстовым полем, в котором я могу send_keys
и набирать текст, но не могу получить его содержимое, как webDriver Element.text
, так и скопировать и вставить, используя выше описанный метод. Моя цель - получить его содержимое и обработать его в моем сценарии. В чем может быть проблема здесь, и что я могу действительно попытаться обойти это?
UPDATE:
Используя цепочку команд (ответ ниже), выполните копирование и вставку. Но мой буфер обмена не имеет содержимого, т.е. возвращает пустое значение. Так же, как метод .text. В чем может быть проблема? Что-то с формой?
Вот мой HTML-код:
<div class="row">
<div class="col-sm-12">
<input app-vast-url-validate="" type="url" class="input-full-width ng-valid-required ng-valid-vast-url ng-dirty ng-touched ng-valid ng-valid-url" id="callback_url_0" name="callback_url_0" ng-model="callback.url" placeholder="Enter Callback URL" ng-keyup="onAddCallbackFormControl($event, callback)" required="" style="">
</div>
</div>
UPDATE:
Поэтому я вместо этого выбираю правую кнопку мыши и копирую контекстное меню, так как ни один из методов не работает. Однако даже с помощью контекстного меню я не могу нажать «Копировать» с помощью клавиш Keys.DOWN_ARRAY или send_keys («c», «c»). Мне действительно нужно собрать эти данные - любые предложения приветствуются - либо хаки и обходные пути, либо понимание того, что на самом деле здесь происходит?