私はそれを記入するためにhtmlフォームをキャッチしようとします。C#seleniumでhtmlフォームを値で塗りつぶし
ここにターゲットのHTMLソースがあります。
<span class="login-id">
<div id="LoginId">
<input maxlength="100" name="uji.model.635939.value">
<input type="hidden" name="uji.model" value="uji.model.635939">
<input type="hidden" name="uji.model.635939" value="com.fujitsu.uji.compo.taglib.FieldStringUpdater;vkaiinNinshoID">
</div>
<span class="example">(半角英数字)</span>
</span>
私は<input maxlength="100" name="uji.model.635939.value">
に焦点を当てます。 そして毎回接続すると番号635949
が変更されます。
これは私のコードです。私はfor
を使って複数のケースを扱いました。
for (int i = 600000; i < 699999; i++)
{
string s = i.ToString();
try
{
IWebElement id = driver.FindElement(By.Name(String.Format("uji.model.{0}.value", s)));
id.SendKeys("******@gmail.com");
}
catch(OpenQA.Selenium.NoSuchElementException e)
{
Console.WriteLine("exception {0}", s);
}
}
私のコードが正しいのだろうか。 (By.Name(String.Format("uji.model.{0}.value", s)
が正しいとは分かりません。
BTWのmaxlength="100"
は、HTMLソースの一意の表現です。 これを使用してフォームに記入する方法はありますか?読んでくれてありがとう。
で
value
を持つ要素、私はそれが実際にそれがELEMを見つける傾けることができないと思いますそれは正しいのですか? –あなたはルーピングと見つけるのではなく、 '(?<!\ d)\ d {6}(?!\ d)'のような番号を見つけるためにregexを使うことができます –
セレンの正規表現詳細は?フォームの記入は成功ですが、時間がかかります。 – 8berry