You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA Selenium如何获取woocommerce-Price-amount类对应的价格文本?

错误原因

  • CSS选择器语法错误
    你写的.woocommerce-Price-amount .amount中间带空格,CSS选择器中带空格表示匹配前者的后代元素中带有后者类名的节点,但目标span元素同时带有两个类名,需要去掉空格写成.woocommerce-Price-amount.amount才能匹配到对应元素。
  • VBA对象赋值缺少关键字
    variableName是WebElement对象类型,VBA中给对象赋值必须加Set关键字,否则会触发类型不匹配错误。
  • 缺少页面加载等待逻辑
    页面资源未完全加载就执行元素查找,也会触发no such element报错,建议添加显式等待确保元素加载完成。
  • 单元格赋值未指定位置
    原代码直接给Sheet1.Cells.Value赋值,没有指定行号列号,会触发区域赋值错误。

修正后完整代码

Private driver As Selenium.ChromeDriver
Sub test2()
    Dim name As String
    name = "test"
    Set driver = New Selenium.ChromeDriver
    Dim By As New By, variableName As WebElement
    
    driver.Start "chrome"
    driver.Get "https://www.kandmfence.net/product/2x-2-alumi-guard-fence-end-post-for-4-tall-fence/"
    ' 增加显式等待,最多等待10秒直到元素加载完成
    Set variableName = driver.FindElementByCss(".woocommerce-Price-amount.amount", 10000)
    
    ' 提取纯数字价格写入A1单元格,不需要去掉$符号可直接赋值variableName.Text
    Sheet1.Cells(1, 1).Value = Replace(variableName.Text, "$", "")
    
    ' 操作完成后关闭驱动释放资源
    driver.Quit
    Set driver = Nothing
End Sub

内容的提问来源于stack exchange,提问作者Red

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:06:02