1

最初のテストが実行され、残りが失敗する一連のテストがあります。カートにアイテムのリストを追加するだけです.「キャッシュに要素が見つかりません-検索後にページが変更された可能性があります」というエラーがあります。以下のコードを使用してみましたが、役に立たないようです。

driver.Manage().Cookies.DeleteAllCookies();

キャッシュをクリアするか、このエラーを取り除く方法はありますか?

コード: このベリファイ メソッドで停止します。これらの行をコメントアウトすると、すべての項目に対してテストが実行されます。

    public bool VerifyItemPresentInCart()
    {
            //Get the cartsize and verify if one item present
            IWebElement cartSize = driver.FindElement(By.CssSelector("div[class='cart-size']>div"));                                             
            string actualMsg = cartSize.Text;
            string expectedMsg = "1";
            VerifyIfTextPresentMethod(expectedMsg,actualMsg);                
            return true;                  
    }

更新: テストには共通のメソッドがあるため、カートに追加されるアイテムごとにメソッドが繰り返されます。これは、それらの一般的な方法の 1 つです。これらのメソッドは、電話などの最初のアイテムに対して機能し、それをカートに追加します。プロセス全体が繰り返される2番目の項目では、このメソッドでこのエラーが発生します。

4

1 に答える 1

0

表示されるエラーは、次の 2 つの理由のいずれかによるものです。

  1. 要素は完全に削除されました。
  2. 要素は DOM に関連付けられなくなりました。

操作しようとしている Web 要素は、ページから移動した後、再度「参照」できません。

このエラーが発生したコード内の行を確認し、要素を再度検索してみてください。

例 : -

webelement = @driver.find_element(:id, "amey")
# Some other interaction whcih causes the element to become "stale"
webelement.send_keys "Hey!" # "Element not found in the cache - perhaps the page has changed since it has looked up" error is shown

に変更します

@driver.find_element(:id, "amey").send_keys "Hey!" #lookup the same element again

詳細については、こちらを参照してください

アップデート

コードに変更を加えました

{
            //Get the cartsize and verify if one item present
            VerifyIfTextPresentMethod("1",driver.FindElement(By.CssSelector("div[class='cart-size']>div")).Text);                
            return true;                  
}
于 2013-05-29T18:17:09.433 に答える