【发布时间】:2020-08-31 04:48:08
【问题描述】:
我正在寻找一种从网站获取名为“data-testid”的元素内容的方法。该元素在 HTML 代码中具有不同内容的不同上下文中存在大约 35 次。 我正在寻找的类似 [data-testid="############-follow"],其中 ######## 是改变号码。 我正在将 Excel VBA 与 Selenium 一起使用,以便与 Chrome 浏览器一起使用。 代码相对简单,大部分都在工作,但我无法获得这个特定的内容。 我打开一个网页,查找具有此名称的元素,然后扫描所有找到的元素(如果它们包含“follow”一词)。找到后,我会提取该单词之前的数字并将其存储在 Excel 工作表中。
Set d = New ChromeDriver
d.Start "Chrome"
Set Rng = Range(Worksheets("followers").Range("A2"), Worksheets("followers").Range("A2").End(xlDown))
For Each Cell In Rng
If Cells(Cell.Row, 2).Value2 = "" Then
user = Cell.Value2
user = Replace(user, "@", "", 1, 1) 'remove "@"
d.Get "https://twitter.com/" & user 'navigate to user's page.
Set Result = d.FindElementsByXPath("//div[@data-testid]")
If Result.Count > 0 Then
For i = 1 To Result.Count
n = InStr(Result(i).Text, "-follow")
If n > 0 Then Exit For
Next
Cells(Cell.Row, 2).Value2 = Left(Result(i).Text, n - 1)
End If
End If
Next
这是 HTML 的末尾包含所需元素的部分:
<div role="button" data-focusable="true" tabindex="0" class="css-18t94o4 css-1dbjc4n r-1niwhzg r-p1n3y5 r-sdzlij r-1phboty r-rs99b7 r-1w2pmg r-1vuscfd r-1dhvaqw r-1ny4l3l r-1fneopy r-o7ynqc r-6416eg r-lrvibr" data-testid="1197328651785789440-follow">
结果 [Result(1...35)] 的每一项都列出了 4 个布尔属性和一种字符串类型,当我检查它时,字符串总是标签名称“div”。没有显示其他属性。一次偶然的机会,我尝试了属性“Text”[Result(i).Text],它给出了页面中的一些文本,但 35 个元素中没有一个显示预期的内容。
由于我对 Selenium 的经验很少,我需要帮助来了解如何提取此元素的内容 谢谢
【问题讨论】: