从Excel复制到浏览器

时间:2015-03-30 13:53:54

标签: excel vba excel-vba selenium

我如何"粘贴"在Selenium / VBA中浏览器文本域?

我下载并安装了这个:https://code.google.com/p/selenium-vba/

我设法在Firefox中启动Selenium(CTRL-ALT-S)并记录了我的自动化步骤。我在那里将代码语言更改为VBA并将其复制以将其粘贴到Excel中。

对于那些想知道在Excel(2013)中做什么的人:

  

右击"开始"   自定义功能区   检查"开发人员工具"在右边   点击OK>点击"开发人员工具" >单击" Visual Basic" >点击"其他" >点击"参考文献" >寻找" SeleniumWrapper类型库"并检查它>点击OK>在菜单栏中单击旁边的顶部箭头"粘贴用户窗体" >点击"模块" >现在粘贴来自Selenium(Firefox)插件​​的VBA代码

一切都运行得很好,但是我希望它能够执行重复的网络浏览器任务,因此它应该复制Excel单元格并将其粘贴到网站的文本框中,例如在Google搜索栏中。

我已经找到了复制部分的解决方案:
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"之间和"价值"。

我很感激任何建议!

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

当然这取决于你想要粘贴文本的元素类型,但是如何直接设置元素的值;

driver.findElementById("ID").text = Range("A1").value2