我有一组测试,其中第一个运行并且休息失败。它只是将一个项目列表添加到购物车。我有一个错误:“在缓存中找不到元素 - 也许页面已经改变,因为它已经查找”。 我尝试使用下面似乎没有帮助的代码。
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;
}
更新:测试有一些常用的方法,因此每个项目都要重复购买。这是常用方法之一。这些方法适用于第一项说电话并将其添加到购物车。对于重复整个过程的第二项,我在这种方法中得到了这个错误。
答案 0 :(得分:0)
您看到的错误是由于两个原因之一
您尝试与之交互的元素,在离开页面后无法再次“引用”。
检查代码中发生此错误的行,然后尝试再次查找该元素。
示例: -
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
有关详细信息,请查看here
<强>更新强>
对您的代码进行了更改
{
//Get the cartsize and verify if one item present
VerifyIfTextPresentMethod("1",driver.FindElement(By.CssSelector("div[class='cart-size']>div")).Text);
return true;
}