使用Selenium VBA从textarea获取多行文字

问题描述 投票:0回答:1

我需要从网页的文本区域中获取多行文本。我在Chrome开发人员工具中看到文本存储在textarea的value属性中。我正在使用以下代码

Set WebElemTextBox = Chrome.FindElementById("lineupsField1")
If Not (WebElemTextBox Is Nothing) Then
    TextVar = WebElemTextBox.value
End If

但是,TextVar仅获取存储文本的第一行。如何获取完整的多行文字?

我也找到了使用类似的答案

TextVar = WebElement.getAttribute("value")

但是我明白了"Run-time error: 438. Object doesn't support this property or method"在测试时在该字符串上。

vba selenium
1个回答
0
投票

[如果可能的话,发布HTML会有所帮助,但无论如何我都会尝试回答。

首先,检查您想组成字符串的每一行的元素ID,我假设它们是顺序的。诸如“ lineupsField1”,“ lineupsField2”,lineupsField3之类的东西。

如果是这样,您可以遍历并将这些值附加到字符串。例如:

For i = 1 to 10
    Set WebElemTextBox = Chrome.FindElementById("lineupsField" & i)
    If Not (WebElemTextBox Is Nothing) Then
        TextVar = TextVar & WebElemTextBox.value
    End If
Next

如果元素ID不是按顺序排列,则不进行循环而是仅追加直到达到目标。例如:

Set WebElemTextBox = Chrome.FindElementById("lineupsField1")
    If Not (WebElemTextBox Is Nothing) Then
        TextVar = TextVar & WebElemTextBox.value
    End If

Set WebElemTextBox = Chrome.FindElementById("Element2")
    If Not (WebElemTextBox Is Nothing) Then
        TextVar = TextVar & WebElemTextBox.value
    End If

就您显示的其他方法而言:

TextVar = WebElement.getAttribute("value")

我不建议您走这条路,因为您很可能会为自己创建更多的工作来解析HTML中的所有值。

© www.soinside.com 2019 - 2024. All rights reserved.