4

WatiNC#を使用して、iframe 内のチェックボックスにアクセスしようとしています。

ドキュメントはこれを使用することを提案しています:

var frame = browser.Frame(frameId);

ただし、次のように、その形式を試しました。

var edUsrFrame = browser.Frame(Find.ByName ("ctl00_ContentPlaceHolder1_WindowManager1359542712913"));

ただし、そのフレームにネストされた要素 (チェックボックス) にアクセスする方法がわかりません。

iframe が動的な名前を使用しているという問題ですか? チェックボックスに直接アクセスしようとしましたが、やはり成功しません。

ありがとうございました。

4

2 に答える 2

2

フレーム内の項目にアクセスする場合は、「トップ レベル」ブラウザと同じようにフレームを扱います。

チェックボックスをクリックするには:

var myFrame = browser.Frame(Find.bywhatever());  //Gets the frame
myFrame.CheckBox(Find.ByName("checkboxnamehere")).Click();

またはもっと簡単に:

browser.Frame(Find.Bywhatever(...)).CheckBox(Find.ByWhatever(...)).Click();

フレームが、ページが読み込まれるたびに変化する動的な名前を使用している場合は、名前で検索する代わりに、正規表現、インデックス、またはそのフレームを簡潔に識別するもので検索します。結論: 名前がページ ロードをページ ロードに変更する場合、名前は使用できません。

于 2013-02-01T19:49:09.473 に答える
0

browser.Frame(Find.ByName("ctl00_ContentPlaceHolder1_WindowManager1359542712913")).CheckBox(Find.ById("abc")).Click();

于 2013-02-04T05:54:06.997 に答える