5

c# で統合テストを作成していますが、ダイアログ ボックス内の特定の要素で click() メソッドを使用すると、何も起こらず、エラーも発生しません。ダイアログ内の一部の要素をクリックしますが、他の要素はクリックしません。それらを適切に選択していないとスローして例外が発生すると思いましたが、実際にはボタンをクリックしていなくてもスムーズに実行され、テストに合格したと表示されます。ダイアログ ボックスは iframe です。

まだ表示されていない、または有効になっていないボタンをクリックしようとしているのかもしれないと思ったので、click() 呼び出しの前にこれを追加しました。

 _driver.SwitchTo().Frame(_frameElement);
     _wait.Until(d =>
    {
      var shippingInfoButton = d.FindElement(By.CssSelector("input[title ='Info']"));
      return shippingInfoButton.Displayed && shippingInfoButton.Enabled;
    });
       var infoButton = _driver.FindElement(By.CssSelector("input[title ='Info']"));
        ScrollToElement(infoButton);
        infoButton.Click();

繰り返しますが、これはスローされた例外なしで実行されるため、要素が見つかり、表示され有効になっていると想定しています。

さらに情報が必要な場合はお知らせください。ありがとう

4

3 に答える 3

4

同様の問題に遭遇しました。同じ問題である場合、ChromeDriver に障害があり、周囲の div などのために特定の要素をクリックできません。本当に少し不自由です。

簡単な修正方法は、Enter キーを送信することです (例: element.SendKeys(Keys.Enter))。すべてのブラウザで動作するようです。

于 2013-08-29T09:25:45.613 に答える