2017-10-06 89 views
0

データを取得したいtd rowspan & td colspanは両方とも同じクラス(ng-binding)を持っています.td rowspan = "4"から出力100が必要です。 td colspan = "6"から38.6%。以下 は私のhtmlコードです:tdからデータを取得するvbaコードrowspan&td colspanを使用してセレンfirefox

以下

<td rowspan="4" class="ng-binding">Subscription used in terms of Duration:100</td> 
 
<td colspan="6" class="ng-binding">38.6%</td>

私は試してみるのコードですが、エラーメッセージ実行時エラー「438」オブジェクトがSet TDs = driver.findElementByClassName("ng-binding")

で、このプロパティまたはメソッドをサポートdoes't取得します
Sub edit() 
Dim driver As New selenium.FirefoxDriver 
driver.Get "url" 
Dim TDs As IHTMLElementCollection 
Dim td As IHTMLElement 
Set TDs = driver.findElementByClass("ng-binding") 
For Each td In TDs 
If InStr(td.innerHTML, "rowspan=""4""") > 0 Then s = td.innerText 
If InStr(td.innerHTML, "td colspan=""6""") > 0 Then 
    s = td.innerText 
    s = Right(s, Len(s) - InStr(s, ":")) 
End If 
Debug.Print s 
Next td 
End Sub 
+0

エラーは「findElementByClassName」と表示され、コードには「findElementByClass」と表示されますか?それは –

答えて

0

たとえば、html変数は、マクロがダウンロードしたhtmlコードです。私は、このようにそれを行うだろう:

Dim TDs As IHTMLElementCollection 
Dim td As IHTMLElement 

Set TDs = html.getElementsByClassName("ng-binding") 
For Each td In TDs 
If InStr(td.innerHTML, "rowspan=""4""") > 0 Then s = td.innerText 
If InStr(td.innerHTML, "td colspan=""6""") > 0 Then 
    s = td.innerText 
    s = Right(s, Len(s) - InStr(s, ":")) 
End If 
Debug.Print s 
Next td 

だけがあればそれが動作するはずです「:」< TDのROWSPAN内=「4」クラス=>「NG結合します」。

+0

のように 'findElementByClass'である必要があります。こんにちはMarcinSzaleniec、reply.Actually私はセレニウムのfirefoxでこのコードを使用する方法を助けてくださいお願いしますので、私はセレンのfirefoxを使用しています。 – anupam

関連する問題