1

Web サイトへの情報の入力を自動化する C# のプログラムを開発しています。このプログラムは、これを可能にし、Javascript を実行してさらに操作できるようにするライブラリ (Coypu) を使用します。

この問題には次の 2 つの形式があります。

  • この Web サイトでは、オブジェクトに名前 (ID ではなく) のみを使用しているため、IE8 を使用する必要があります。document.getElementsByName('name');以前のバージョンの IE ではサポートされていないため、使用できません。
  • サイトにあるフォームを利用して回避策を見つけましたが、サイトがリンクをクリックして 2 番目のタブを作成する必要があり、2 番目のタブでフォームを取得することができないため、使用に問題があります。次のようなものを使用するとdocument.forms[formIndex].elements['elementsName'];(タブにフォーカスがあるように見えますが)、メインタブのフォームのみが表示されます。

誰かがこの問題を修正したり、Javascript で回避策を見つけたりしたことがありますか? また、Javascript は C# メソッドに渡される文字列であるため、私のシナリオで jQuery を使用できるかどうかもわかりません。ただし、機能する場合と機能しない場合があります。

4

1 に答える 1

0

テストしている Web サイトが jQuery にアクセスできる場合は、Coypu を使用して、それぞれのフォームに特定のフィールドを入力できます。

例えば

void PopulateInputField(int formName, string fieldName, string fieldValue)
{
    browser.ExecuteScript(string.Format("$('form[name='{0}'] > input[name='{1}']).val('{2}')", formName, fieldName, fieldIndex));
}

Coypu の ExecuteScript に渡される C# 文字列に jQuery が含まれていることに注意してください。

于 2013-09-12T20:57:14.753 に答える