使用VBA selenium从HTML获取属性文本

使用VBA selenium从HTML获取属性文本,vba,selenium,Vba,Selenium,我需要从“数据评级”属性中获取值“8.37” <div class="ch-rating"> "VERYGOOD 8.37" <div class="star-rating star-rating--alt star-rating--ch" data-rating="8.37" style=""> <span style="width: 83.7%;"></span> </div> </di

我需要从“数据评级”属性中获取值“8.37”

<div class="ch-rating"> "VERYGOOD 8.37"
    <div class="star-rating star-rating--alt star-rating--ch" data-rating="8.37" style="">
            <span style="width: 83.7%;"></span>
    </div>
</div>
“VERYGOOD 8.37”
java中有
.getAttribute()
,但我在VBA中找不到语法

我猜是这样的:

bot.findelementbypath(“//div[@data rating]”)。
后跟一些语法。

要从“data rating”属性获取值“8.37”,可以使用以下代码行:

bot.FindElementByXPath("//div[@class='ch-rating']/div[@class='star-rating star-rating--alt star-rating--ch']").getAttribute("data-rating")

更新1 语法:

var attribute = element.getAttribute(attributeName);
在哪里

  • 属性是包含attributeName值的字符串
  • attributeName是要获取其值的属性的名称

更新2: 正如您看到的运行时错误438:Object不支持HtmleElement.GetAttribute方法(字符串)的此属性或方法,以下是一些详细信息:

如果程序在运行Windows 95的系统上,且区域设置设置设置为英语(美国)以外的设置,则在运行将窗体分配给变量且该变量用于访问窗体上的控件的程序时发生错误438。错误文本为:

Run-Time Error #438:
Object doesn't support this property or method
决议 这个问题有两种可能的解决方法

  • 直接访问表单,而不是通过包含表单的变量
  • 在窗体代码中创建属性过程,以提供对窗体上控件属性的访问
地位 Microsoft已确认这是本文开头列出的Microsoft产品中的一个bug。此问题已在Windows 98中修复

琐事 <> P>要始终复制这个bug,您需要HeAPWalk,一个实用工具,它与Windows 16位软件开发工具箱和Visual C++ 16位版本一起运行。 复制步骤:
  • 在“控制面板”中,单击“区域设置”以打开“区域设置”对话框。将区域设置设置为英语(澳大利亚)
  • 启动16位版本的Visual Basic 4.0。如果已在运行,请从“文件”菜单中选择“新建项目”
资料来源:


我会在JAVA中这样做<代码>WebElement we=driver.findElement(By.className(“星级”);字符串评级=we.getAttribute(“数据评级”)我对VBA语法一无所知,但我希望它存在。如果没有,你可以使用JS来获得你想要的东西,假设VBA有JavascriptExecutor的等价物。获得评级的正确语法是
driver.FindElementByCss(“[data rating]”)。属性(“data rating”)
。非常感谢@Florent B。我将使用你提供的语法+1。感谢你的解决方案。不幸的是,我犯了一个错误。运行时错误438:对象不支持此属性或方法更新了我的答案。让我知道状态。再次出现相同错误。我也尝试过绝对路径:非常感谢@DebanjanB提供的信息。我想我会用css finder来解决这个问题。