我正在从网页上删除一些数据,并希望在找不到一个ID时切换id
。
我试过了:
If IsError(Docx.getElementById("priceblock_ourprice").innerText) Then
price = Docx.getElementById("priceblock_saleprice").innerText
Else
price = Docx.getElementById("priceblock_ourprice").innerText
End If
但是,我IsError(Docx.getElementById("priceblock_ourprice").innerText)
Object variable or With Block is not set.
任何建议,如何"赶上" Docx.getElementById("priceblock_ourprice").innerText
的错误?
感谢您的回复!
答案 0 :(得分:3)
尝试使用IsObject Funcion
- > IsObject
在您的情况下IF IsObject(Docx.getElementById("priceblock_ourprice")) THEN (...)
答案 1 :(得分:1)
如果您尝试按ID定位元素,那么您对非破坏性捕获的选择是有限的,但您可以Set
返回getElementById
并检查无效。
dim el as MSHTML.IHTMLElement
on error resume next
set el = Docx.getElementById("priceblock_ourprice")
on error goto 0
If not el is nothing Then
price = Docx.getElementById("priceblock_ourprice").innerText
Else
price = Docx.getElementById("priceblock_saleprice").innerText
End If
如果您按集合定位元素,则可以在访问其中一个属性(例如.innerText)之前遍历它们以查找第二个唯一标识符。