【问题标题】:Copy from Excel to Browser从 Excel 复制到浏览器
【发布时间】:2015-06-03 13:50:37
【问题描述】:

如何将 Selenium/VBA 中的“粘贴”到浏览器文本字段?

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

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

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

右击“开始” 自定义功能区 勾选右侧的“开发者工具” 单击确定>单击“开发人员工具”>单击“Visual Basic”>单击“附加”>单击“参考”>查找“SeleniumWrapper 类型库”并检查它>单击确定>在菜单栏中单击“粘贴用户窗体” > 单击“模块” > 现在将 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(); 语法错误,没有“;” “错误:列表分隔符”并标记“。”在“字符串”和“值”之间。

感谢您的任何建议!

【问题讨论】:

    标签: vba excel selenium


    【解决方案1】:

    最简单的方法是发送文本:

    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"
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-28
        • 1970-01-01
        • 2020-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-08
        • 1970-01-01
        相关资源
        最近更新 更多