0

C# と Selenium を使用して、ドロップリスト (.csv ファイルで指定されている値) から特定の値を選択しようとする自動スクリプトを作成しています。エラーが発生します。

クリック アトムの実行中にエラーが発生しました(警告: サーバーはスタック トレース情報を提供しませんでした)」

クリックアトムが何であるかはわかりません。ましてや、それを修正する方法もわかりません...どんな助けも大歓迎です!

前もって感謝します

これはドロップリストのコードです:

public bool isellHOSelectAdultsDroplist(string adults)
{
    writeToLog(String.Format("Selecting adults from drop list"), this.GetType().Name);
    String xpathString = HO_ADULT_SELECTION;

    if(GpoExplicitWaitXpathElement(xpathString, 3, 5))
    {
        IWebElement dropListObjects = webDriver.FindElement(By.XPath(xpathString));
        writeToLog(String.Format("DEBUG: Trying to click on appropriate number of adults..."), this.GetType().Name);
        selectValueFromAdultDropList(dropListObjects, adults);
        return true;
    }
    else
    {
        return false;
    }
}

//...これが私の select-method です

private void selectValueFromAdultDropList(IWebElement dropListObjects, string adults)
{

    SelectElement manipulateDroplistObject = new SelectElement(dropListObjects);
    manipulateDroplistObject.SelectByValue(adults);
    String selection = manipulateDroplistObject.SelectedOption.Text;

    int numberOfElements = manipulateDroplistObject.Options.Count;
    writeToLog("Number of elements in Adult Droplist: " + numberOfElements, this.GetType().Name);
    writeToLog("Selection from adult droplist: " + selection, this.GetType().Name);
}
4

1 に答える 1

1

「クリック アトムとは何ですか?」という具体的な質問にお答えします。IE ドライバーにはかなりの機能があり、この機能の実装は 3 つの柱に基づいています。

1 つ目は、IE の COM インターフェイスです。これらは、10 年以上にわたって IE のさまざまな部分を自動化するために使用されてきたオブジェクトとメソッドです。

2つ目の技術は、いわゆる「ネイティブイベント」です。つまり、OS レベルのメカニズムを使用して、キーの押下やマウスのクリックなどのユーザー操作を実行します。Windows では、Windows SendMessage API を使用することを意味します。IE ドライバーでキーボードまたはマウスを使用しているほとんどの場合、デフォルトでネイティブ イベントを使用しています。

最後に、IE ドライバー機能の大部分は、すべてのブラウザーで共有される JavaScript 関数を使用して実装されています。これらの関数は「オートメーション アトム」として知られています。

マウス操作にネイティブ イベントを使用する場合の数少ない例外の 1 つは、<option>要素から要素を選択する場合<select>です。IE は要素に検出可能なサイズを与えないため<option>、IE ドライバーは JavaScript を介してクリック アクションをシミュレートする必要があります。これは、クリック アクションにオートメーションアトムを使用することを意味します。あなたの場合、その JavaScript の実行で何か問題が発生したに違いありません。これは、「クリック アトムの実行の失敗」として忠実に報告されています。問題を再現するためのサンプル HTML ページなどの詳細がなければ、問題の根本原因を診断することは非常に困難です。

この時点で、最新の IE ドライバーに更新するための呼び出しをエコーし​​ます。この領域のコードの一部はオーバーホールされており、少なくとも、最新のドライバーを使用すると、障害ケースからより正確なエラーを抽出できるはずです。

于 2013-02-22T07:10:27.940 に答える