Q&A
①実現したいこと
VBAのSelenium(Webdriver)を使用し、price、もしくはpriceBの情報を抽出~Excelに貼付をしたいです。
ブラウザはEdgeになります。
該当のソースコードは④に記載致します。
②前提~発生している問題~試した事
下記の様にclass item-price+class priceで始まるタグ(price*?)での引用ですと、イメージが近い様に思えます。
以前にこちらでご教示を頂きました、.Attribute()を試しています。
Dim price
Set price = driver.FindElementsByClass("item-price")
For j = 1 To num ’→ num は変数で定義していますが、実際は48として機能しています。
Debug.Print "price(" & j & ")" & "=" & price(j).Text
'試した事_01:class="ico-off"など不要な要素が抽出される
' ws.Range("E" & j + 5).Value = price(j)
'試した事_02:pタグなしのためエラーになる
' ws.Range("E" & j + 5).Value = price(j).FindElementByTag("p").Attribute("price*")
'試した事_03:対象なし
' ws.Range("E" & j + 5).Value = price(j).Attribute("price*")
Next
③補足
※For~の中に Debug.Print "price(" & j & ")" & "=" & price(j).Textを入れた場合、下記の通りに要素の全てが出力されます。
ただし欲しい情報はprice、もしくはpriceBの情報のみになります。
price(1)_\11,550
\5,980 (税込)
48%OFF
price(2)期間限定:3/10(金)?16(木)
¥11,000
\6,600 (税込)
40%OFF
price(3)期間限定:3/10(金)?16(木)
¥22,000
\17,600 (税込)
20%OFF
price(4)\23,800 (税込)
price(5)\16,500 (税込)
price(6)_期間限定:3/10(金)?16(木)
¥17,900
\11,000 (税込)
38%OFF
price(7)_期間限定:3/10(金)?16(木)
・
・
・
※driver.FindElementsByCssの考え方が得意ではないので、可能であればAttributeを使った形ですと分かりやすいです。
④該当のソースコード
<!-- 価格情報--> <p class="item-price"> <span class="item-wrapper"><span class="" ></span>
</span> <!-- 期間--> <span class="period-wrapper"> <!-- 期間限定価格最終日文言--> <!-- 期間限定価格文言曜日あり--> </span> <!-- 前価格--> <span class="wprice"> <span>¥11,550</span> </span> <!-- 現在価格--><span class="price">¥5,980</span>
<span class="tax">(税込)</span>
<span class="rate">
<span class="ico-off">48%OFF</span>
</span>
<span class="priceB">¥23,800</span>
<span class="tax">(税込)</span>
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。