selenium-旧元素参考:该元素未附加到页面

selenium-旧元素参考:该元素未附加到页面,第1张

selenium-旧元素参考:该元素未附加到页面

我没有在c#中工作,但是在java / selenium中工作。但是,我可以为您提供克服陈旧的想法。

通常,如果在启动Webelement后更改了元素属性或某些内容,则将获得Stale
Exception。例如,在某些情况下,如果用户尝试在同一页面上单击同一元素,但在页面刷新后单击,则会获得跟踪例外。

为了克服这个问题,如果页面被更改或刷新,我们可以创建新的Web元素。下面的代码可以给您一些想法(它在Java中,但是概念是相同的)

例:

 webElement element = driver.findElement(by.xpath("//*[@id='StackOverflow']")); element.click(); //page is refreshed element.click();//This will obviously throw stale exception

为了克服这个问题,我们可以将xpath存储在某个字符串中,并在使用时使用它创建一个新的webelement。

String xpath = "//*[@id='StackOverflow']";driver.findElement(by.xpath(xpath)).click();//page has been refreshed. Now create a new element and work on itdriver.fineElement(by.xpath(xpath)).click();   //This works

在这种情况下,我们将收集一组网络元素并进行迭代以获取文本。但是,在收集Web元素后,Web元素似乎发生了一些变化,并且gettext引发了陈旧。我们可以使用循环并在旅途中创建元素并获取文本。

for(int i = 0; i<5; i++){   String value = driver.findElement(by.xpath("//.....["+i+"]")).getText);   System.out.println(value);}

希望这对您有所帮助。谢谢。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5641978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存