2016-05-30 6 views
0

で変化するプログレスバーの値を読む:C#のは、私が(前にDelphiで私の時間を費やした)C#にちょっと新しいですし、私はトラブルにこれを見つけるを持っていますウェブブラウザ

ウェブサイトのHTMLコードはこれです:

<div class="progress-bar progress-bar-danger" id="counter" style="width: 10.%; overflow: hidden;"></div> 

私はこのようなSTHを把握しようとしています:

var CheckValue = webBrowser1.Document.GetElementById("counter"); if (counter.style.width > 70%) { //code } 

だから、基本的にやろうとしているイムが何であるか: 私はウェブサイトの私のプログレスバーの幅かどうかを確認したいです70%以上で満たされている場合は、コードを実行しますが、そうでなければ数秒後に再試行します。

さらに詳しい情報が必要な場合は、私に教えてください!

おかげ

+0

変数 'counter'はありません。 'CheckValue.Style'を使うと、スタイルを含む文字列を返します。 – Ivar

+0

あなたの答えに感謝します!どのようにすれば、私はそれだけが必要なので、プログレスバーから幅の値を取ることができますか? – userlip

+0

これに正規表現を使うことができます。あなたは 'width:'と '%'の間の値を見つける必要があります。あなたがそれを持ってそれを整数に変換すると、それが70より高いかどうかを知ることができます。 – Ivar

答えて

0

あなたはスタイルを含む文字列を返しますCheckValue.Styleを、使用することができます。次に、Regexを使用して、探しているものを見つけることができます。

正規表現でwidth:.%の間の数字を一致させたいとします。あなたはそのためにこれを使用することができます。

width: ([0-9]+(\.[0-9]+)?)\.?% 

これは、0から9

の間に少なくとも1つの文字で、 %前に、すべての文字列 width:から始まり、 .の可能性 %で終わると一致します

このコードを使用してこの値を得ることができます:

var checkValue = webBrowser1.Document.GetElementById("counter"); 

Regex regex = new Regex("width: ([0-9]+(\\.[0-9]+)?)\\.?%"); 
Match match = regex.Match(checkValue.Style); 

// Check if match found 
if (match.Groups.Count > 1) 
{ 
    String s = match.Groups[1].ToString(); 
    int width = (int)Convert.ToDouble(s); 
} 
+0

ありがとうS 「%」の前の数字が72.3213%のようなものであれば、コードは意図したとおりに機能しますか? 私にとっては私は「StringにSystem.WIndows.Forms.HtmlElementから変換することはできませんヨールコードの行4で述べている。 couldntのは、インターネット上の任意の解決策を見つける:(あなたはそれが何であるかのアイデアを持っている? ありがとうございました! – userlip

+0

気にしないでくれ!ありがとうございました! – userlip

+0

あなたは正しいです。正規表現は浮動小数点数をカウントに取らず、クラッシュします。私はただそれを修正した。そして、 'checkValue'の後ろの' .Style'を忘れてしまいました。エラーが発生しました。 – Ivar

関連する問題