【发布时间】:2020-12-15 07:05:27
【问题描述】:
我正在使用 Selenium Basic VBA 循环遍历 URL 的 Excel 表,打开每个 URL,在该网页上找到特定的日期字段,并将日期作为字符串返回到 Excel 表上的列。
10 次中有 9 次完美运行,但似乎是随机返回的日期与日期和月份交换,即网页显示“2019 年 5 月 11 日”,Excel 列显示“2019 年 5 月 11 日” .
发生这种情况时,日期在 Excel 中也是右对齐的,而所有其他日期都显示为左对齐。当我编辑左对齐的单元格然后选择另一个单元格时,它们然后右对齐,而右对齐的单元格保持不变。这本身不是问题,但我想知道它是否包含问题的线索。
如果它有帮助的话,这就是我用来提取数据的 VBA 代码(我已经在 URL 中散列了机密但不相关的细节)。我使用的是 Google Chrome 作为浏览器。
我必须添加一个bot.Wait 来给页面加载时间,并使用Application.WorksheetFunction.Trim() 因为网页在日期字符串后包含一个空格。
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("data")
Dim tbl As ListObject
Set tbl = ws.ListObjects("opportunities")
For i = 1 To tbl.ListRows.Count
If tbl.ListRows(i).Range(10) = "" Then
bot.Get "########" & tbl.ListRows(i).Range(1)
bot.Wait (500)
tbl.ListRows(i).Range(10) = Application.WorksheetFunction.Trim(bot.FindElementByCss(".l-row-block:nth-child(1) .field:nth-child(7) .value").Text)
End If
Next i
任何关于这里可能发生的事情的指导都会非常有用!
【问题讨论】:
-
可能是excel格式的原因,你试过在日期前加上
'(单引号)吗?类似Application.WorksheetFunction.Trim("'" & bot.FindElementByCss(".l-row-block:nth-child(1) .field:nth-child(7) .value").Text) -
@supputuri 宾果游戏,明白了!非常感谢:)
标签: excel vba selenium selenium-chromedriver