重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

下記のWeb画面の自動更新のON、OFFをトグル式に切り替える方法をtodo36さんに教えて頂きました。(ありがとうございます)

webBrowser1.Document.GetElementById("ModeSwitch").InvokeMember("click");

https://qcs118.qhit.net/livestar/w3/ed45ff5c0d08 …

次は、現在、ONとOFFのどちらが選択されているのか?把握するにはどのようにすれば宜しいのでしょうか?

GetElementById("ModeSwitch")で取得したElemntオブジェクトをローカル変数で見ても一向に解りません。どなたか詳しい方いらっしゃいましたら教えて頂けないでしょうか?
宜しくお願い致します。

A 回答 (1件)

こんにちは



ご使用の言語がわからないので、表示内容の仕組みだけの回答です。


id="ModeSwitch"の要素はspan要素で、表示用の文字列はなく、見えているのは背景画像に設定されている画像です。
要素をクリックすると、背景画像がoff.gifとon.jifにトグルで入れ替わる仕組みになっています。
背景のCSSは事前に両方とも定義してありますが、クラス設定の状態によって適用される背景画像が変わるようになっているようです。

OFFの(デフォルト)場合は
.mode-switch-button { background-image:url( ~~
ONの場合は
.mode-auto .mode-switch-button { background-image:url( ~~
が適用されるようになっています。
当該要素の先祖要素に「mode-auto」クラスが設定されているはずですが、探してみるとbody要素のクラス設定が
「mode-manual」と「mode-auto」に切り替えられているようです。

>ONとOFFのどちらが選択されているのか?把握するにはどのようにすれば宜しいのでしょうか?
上記から、body要素のクラスリストでどちらが設定されているかをチェックすればわかると思います。
    • good
    • 0
この回答へのお礼

早速のご指導ありがとうございます。

言語は、VB.netです。
WindowsフォームのWebBrowserにWeb画面を表示して自動更新の選択状態で制御を切り替えようとしていました。

ご指導頂いた内容で、次のコードで切り替え制御が可能になりました。
If DirectCast(WebBrowser1.Document.Body.DomElement, mshtml.HTMLBodyClass).outerHTML.Contains("mode-auto") Then
Label1.Text = "AUTO"
Else
Label1.Text = "MANUAL"
End If
ありがとうございました。

お礼日時:2019/05/31 14:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!