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
相关产品推荐
相关产品推荐

