2015-03-30 19 views
0

Как «вставить» в Selenium/VBA в текстовое поле браузера?Копирование из Excel в браузер

Я скачал и установил это: https://code.google.com/p/selenium-vba/

мне удалось запустить Selenium в Firefox (CTRL-ALT-S) и записанными мои шаги для автоматизации. Я изменил язык кода на VBA и скопировал его, чтобы вставить его в Excel.

Для тех из вас, кто хочет знать, что делать в Excel (2013):

Right click "Start" Customize Ribbon Check "Developer Tools" on the right Click OK > Click on "Developer Tools" > Click "Visual Basic" > Click "Extras" > Click "References" > Look for "SeleniumWrapper Type Library" and check it > Click OK > In Menu bar click on the top arrow beside "Paste UserForm" > Click "Module" > Now paste the VBA Code from Selenium (Firefox) Plugin in there

Все работает прекрасно, но я хочу, чтобы это сделать повторяющихся задач веб-браузера, так что необходимо скопировать ячейки Excel и вставить это в текстовых блоках на веб-сайтах, например, в Google Searchbar.

я уже нашел решение для копирования части:
Range("A1").Copy

Это работает, но я не могу найти рабочее решение для вставки части. Протестировано, но не работает:

driver.findElementById("ID").SendKeys "^v" выдает «v» вместо склеивания.

driver.findElementById("ID").SendKeys(Keys.chord(Keys.CONTROL, "v")); Не принимает ";" а также не работает.

Я также пробовал несколько кодов «Подождите» и «Сон», но я точно не знаю, кто из них действительно работает, или если они необходимы.

driver.action.key_down(: control) Не работает.

driver.findElementById("ID").keyDown(Keys.CONTROL).sendKeys(String.valueOf('\u0076')).perform(); Ошибка синтаксиса без «;» «Ошибка: разделитель списков» и отмечает «.». между «String» и «value».

Я благодарен за любые советы!

ответ

0

Самый простой способ отправить текст:

Dim driver As New FirefoxDriver 
driver.Get "https://en.wikipedia.org/wiki/Main_Page" 

driver.FindElementById("searchInput").SendKeys [A1] 

Если вам действительно нужно использовать буфер обмена:

Dim Keys As New Selenium.Keys 
Dim driver As New Selenium.FirefoxDriver 
driver.Get "https://en.wikipedia.org/wiki/Main_Page" 

driver.SetClipBoard [A1] 
driver.FindElementById("searchInput").SendKeys Keys.Control, "v" 
0

Конечно, это зависит от типа элемента, который вы хотите пасты текст, но как просто установить значение элемента напрямую;

driver.findElementById("ID").text = Range("A1").value2 
Смежные вопросы