Selenium VBA如何使用变量作为网页元素属性值完成定位操作
问题原因
你写的CSS选择器参数没有正确引用变量:把codeInList直接放在字符串引号内部时,VBA会将其识别为普通文本,不会读取变量存储的"000"值,最终传入的选择器实际匹配data-code属性开头为codeInList文本的元素,和目标元素属性不匹配。同时你写的选择器中^=后多了冗余空格,也会干扰匹配结果。
正确代码
VBA中用&作为字符串拼接符,将变量和选择器固定部分拼接,保证最终生成的选择器格式和你之前验证可用的硬编码版本完全一致即可:
Dim codeInList As String codeInList = "000" .FindElementByCss("[data-code^='" & codeInList & "']", 8000).Click
注意事项
- 上述代码拼接后实际传入的选择器为
[data-code^='000'],和你之前能正常运行的硬编码选择器完全一致,可以正常定位元素 - 后续需要匹配其他编码值时,仅需修改
codeInList变量的赋值,无需调整选择器结构 - 拼接时注意单引号位置,要保证变量传入的实际值被单引号完整包裹,符合CSS属性选择器语法要求
内容的提问来源于stack exchange,提问作者Red
相关产品推荐
相关产品推荐

