Я пишу макрос Excel, используя Selenium basic, для автоматизации загрузки данных из веб-инструмента, который я использую.
Используя селен, мне нужно каким-то образом выбрать 200 ячеек в столбце в Excel и отправитьих в текстовое поле на веб-странице.
Следующая строка успешно делает это с одной ячейкой A1:
driver.FindElementById("batch_requests").SendKeys [A1]
Мой вопрос: Как я могу отправить весь диапазон A1: A200
Цикл и выполнение по одному за один раз будет слишком трудоемким, поскольку мне нужно вставить тысячи точек данных за раз, 200 за один раз.
Использование стандартных sendkeys в VBA(не Selenium) не является хорошим решением, потому что компьютер будет использоваться, пока макросы работают в фоновом режиме.
Итак, есть ли способ отправить диапазон значений ячеек на веб-страницу, а нетолько одна ячейка?
Заранее благодарим за любую помощь или совет, который я могу получить!
РЕДАКТИРОВАТЬ - Код, который я в конечном итоге использовал, можно увидеть ниже.Это ответ @Qharrs, соответствующий моим потребностям (спасибо, Qharr, буквально не смог бы сделать это без вас. Я действительно пытался ;-))
Я не говорю, что нижеизложенное является самым элегантнымрешение, но оно работает каждый раз, когда я буду использовать ситуацию.
' Copy column A 200 cells at a time into webpage text input field
Dim clipboard As Object
Dim data As String
Dim myRange As Range
Set clipboard = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
' See how many rows of data in column A
numRows = Range("A1", Range("A1").End(xlDown)).Rows.Count
' Step through column A, 200 cells at a time (until numRows is exceeded)
' and create a range to be copied to clipboard and sent to webpage via Selenium
' 'Batch_Requests' is ID of input field page element to send text to.
For x = 2 To numRows Step 200
Set myRange = Range("A" & x & ":A" & (x + 200))
myRange.Copy
With clipboard
.GetFromClipboard
data = .GetText
driver.FindElementById("batch_requests").SendKeys data
End With
' *****************************************************************************
' Insert Seleneium code here to manipulate the web page with the data
' *****************************************************************************
' Clear text input field
driver.FindElementById("batch_requests").Clear
' Go to next 200 in column A (until none left)
Next x