您好我试图从网站上获取背景颜色,以便将其与其他操作进行比较。就像网站购买按钮的背景颜色一样。
Sub Colorfinder()
Dim oIE As New InternetExplorer
Dim oHtml As HTMLDocument
Dim tags As Object
Dim HTMLtags As IHTMLElementCollection
Dim HTMLtag As IHTMLElement
With oIE
.Visible = True
.navigate "https://www.gdax.com/trade/LTC-EUR"
Do Until .readyState = READYSTATE_COMPLETE: Loop
Set oHtml = .document
End With
'this is needed to wait until the page is totally loaded
Do: Set tags = oHtml.getElementsByClassName("OrderBookPanel_text_3fH-g")(0): DoEvents: Loop While tags Is Nothing
'getting the element that it is about
Do: Set HTMLtags = oHtml.getElementsByClassName("OrderForm_toggle_31S34"): DoEvents: Loop While HTMLtags.Length = 0
Set HTMLtag = HTMLtags(0).Children(0)
Debug.Print HTMLtag.innerText
'this is the problem
Debug.Print HTMLtag.Style.backgroundColor
End Sub
我从其他人的溢出用户那里得到了这个想法。但它不起作用。 link stuckoverflow
答案 0 :(得分:3)
请尝试以下代码:
Sub Colorfinder()
With CreateObject("InternetExplorer.Application")
.Visible = True
.navigate "https://www.gdax.com/trade/LTC-EUR"
Do While .Busy Or .readyState < 4: DoEvents: Loop
With .Document
Do While .getElementsByClassName("OrderBookPanel_text_3fH-g").Length = 0: DoEvents: Loop
Do While .getElementsByClassName("OrderForm_toggle_31S34").Length = 0: DoEvents: Loop
With .parentWindow
.execScript "var e = document.getElementsByClassName('OrderForm_toggle_31S34')[0].children[0];"
.execScript "e.style.backgroundColor = window.getComputedStyle(e,null).getPropertyValue('background-color');"
End With
Debug.Print .getElementsByClassName("OrderForm_toggle_31S34")(0).Children(0).Style.backgroundColor ' rgb(77, 165, 60)
End With
End With
End Sub
.execScript
在HTML文档中执行JScript代码,这就是语法使用var
,'
,[]
和;
等变量{{}的原因。 1}}是在文档范围中声明的目标节点,它是实际计算的背景值,只是放入e
属性。使用.backgroundColor
是我找到实际工作的.execScript
方法的唯一方法。
答案 1 :(得分:0)
这真的是否需要自动化?
“购买”按钮的背景颜色为:
(点击了解有关 #4da53c
Strong Sap Green 的更多信息。)
右键单击网页上的任何元素,然后选择Inpsect Element
以查找样式属性下的颜色(具体位置取决于您的浏览器)。
或者,使用颜色检测实用程序,例如:
Instant Eyedropper在后台运行。单击系统托盘中的图标,然后单击屏幕上的任何位置以识别像素的颜色。
Firefox add-on: colorPicker同样的想法,但插件。
其他浏览器可以使用其他浏览器,还有一些网站可以识别上传图片,网址,整个网站配色方案等的颜色。