我如何"粘贴"在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"之间和"价值"。
我很感激任何建议!
答案 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