【问题标题】:Not able to write content in textarea in Fitnesse from vba无法从 vba 在 Fitnesse 的 textarea 中写入内容
【发布时间】:2019-11-26 01:16:51
【问题描述】:

我正在开发一个 VBA,它将打开 Fitnesse 链接以创建一个新的测试页面并写入页面名称、页面内容并单击保存。

  1. 我正在使用 VBA 库中的 InternetExplorerMedium 访问 Fitnesse 链接以创建新的测试页面(成功)。
  2. 然后我会将excel表格中的内容读入一个变量(成功)。
  3. 然后我将内容粘贴到新创建的测试页面的文本区域(未发生)。
  4. 然后我会点击保存(成功)

Set IE = New InternetExplorerMedium
sURL = "FitnesseURL"
With IE
    .Navigate sURL
    .Visible = True
End With
IE.Document.getElementById("pagename").Value = "Dummay_Page" '--> This is Page name text Box
StrVal = <Content from Sheet1>
IE.Document.getElementById("pageContent").innerText = StrVal '--> This is Page Textarea
Set btn = IE.Document.getElementByName("save") ' -- This is a Page button
btn(0).Click

我希望将 Sheet1 中的内容粘贴到 Fitnesse 测试页面 textarea 中,但它没有发生,我尝试了 .innerText.innerHTML.Value 选项

【问题讨论】:

  • 可以分享一下网址吗?失败了-通过edit使用sn-p工具的html。
  • 应用程序在我的企业机器上,抱歉。但该应用程序看起来像this
  • 我认为这是由于 Win 10 造成的。我能够在 Win 7 中运行相同的代码,但不能在 Win 10 中运行
  • 这一行 Set btn = IE.Document.getElementByName("save") 应该是 Set btn = IE.Document.getElemenstByName("save")(0)
  • 我们需要查看有问题的 html,但是对于其余的答案,

标签: html excel vba internet-explorer fitnesse


【解决方案1】:

请尝试使用 F12 开发者工具检查 html 元素,确保它包含 pagename 和 pageContent 元素。此外,请检查您的代码,您在 getElementsByName 方法中丢失了一个 's'。

如果还是不行,我建议你可以尝试使用下面的代码(使用 CreateObject 方法创建 IE 对象,下面的代码对我来说效果很好。):

Sub test()

Dim IE As Object

Set IE = CreateObject("InternetExplorer.application")

sURL = "website url"

With IE
    .Navigate sURL
    .Visible = True
End With


IE.Document.getElementById("pagename").Value = "Dummay_Page" '--> This is Page name text Box

StrVal = <cocntent from sheet1>

IE.Document.getElementById("pageContent").innerText = StrVal '--> This is Page Textarea

Set btn = IE.Document.getElementsByName("save")(0) '-- This is a Page button

btn.Click

End Sub

【讨论】:

  • 我已经通过检查 HTML 元素验证了元素名称,我无法粘贴实际代码,因为设置在企业机器中,因此缺少“s”。我也尝试了createObject,它抛出“对象'Iwebbrowser2'的方法文档失败”错误。知道如何解决吗?
  • 看来你使用的是中等完整性级别的Internet Explorer,尝试使用“Set IE = CreateObject("InternetExplorer.ApplicationMedium")”,这里是thread,你可以参考它。
  • 我使用的是 InternetExplorerMedium,这类似于 CreateObject("InternetExplorer.ApplicationMedium") 对吧?
  • 是的,你可以试试。
  • 这就是我已经做过的,但它没有将数据写入文本区域。是因为 Textarea 在一组表单中,比如(Body->Article->Form->Fieldset->TextArea)?我试图创建一个只有一个 textarea 的虚拟网页并应用相同的代码,它执行得很好
猜你喜欢
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-03
  • 2017-06-24
  • 2019-05-06
  • 1970-01-01
相关资源
最近更新 更多