gpt4 book ai didi

c# - 第二次导航到页面后,Selenium 找不到之前创建的 IWebElement

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:04 25 4
gpt4 key购买 nike

我有一个带有登录页面的示例测试,我想在其中模拟成功登录,然后注销,最后使用错误密码登录失败。当我第一次导航到登录页面时,我使用以下代码查找元素:

IWebElement username = wait.Until((x) => { return x.FindElement(By.Id("input-1")); });

然后在清除 cookie 后,我导航回相同的登录页面并尝试使用相同的元素:

//navigating to the login page
driver.Navigate().GoToUrl(panel);

//Verifying that the page is the one i am looking for
IWebElement signUp = wait.Until((x) => { return x.FindElement(By.Id("go_sign_up")); } );
Assert.IsNotNull(signUp);
//Try to add some info to username field
username.SendKeys("blabla");

页面中存在具有相同 id 的相同元素,但我在测试中遇到以下错误:消息:OpenQA.Selenium.StaleElementReferenceException:过时的元素引用:元素未附加到页面文档

第一次提问,如有不足请见谅

最佳答案

发生这种情况是因为当您离开页面并返回时页面DOM 得到刷新

最快的解决方法是在返回页面后再次定位该元素。

我还建议您阅读有关页面对象模型和使用 CacheLookup 的内容

关于c# - 第二次导航到页面后,Selenium 找不到之前创建的 IWebElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50970629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com