程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了无法使用硒选择字段大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决无法使用硒选择字段?

开发过程中遇到无法使用硒选择字段的问题如何解决?下面主要结合日常开发的经验,给出你关于无法使用硒选择字段的解决方法建议,希望对你解决无法使用硒选择字段有所启发或帮助;

我正在使用 c# 和 SELEnium 在网页上进行测试。 问题是我有 3 个不同的选择字段。 附一张照片。

无法使用硒选择字段

第一个始终处于启用状态,第二个始终处于禁用状态,直到在第一个中选择了语音,第三个也是如此,当在第二个中选择了语音时,它变得可选。

无法使用硒选择字段

我用来填充字段的代码是:

SELEctElement selAppl = new SELEctElement(driver.FindElement(By.ID("IDApplicazione")));
selAppl.SELEctByValue(dataApp.ToString());

wait.Until(ExpectedConditions.StalenessOf(driver.FindElement((By.ID("IDDDLAmbito")))));
SELEctElement selAmbito = new SELEctElement(driver.FindElement(By.ID("IDDDLAmbito")));
selAmbito.SELEctByValue(ambito);
        
wait.Until(ExpectedConditions.StalenessOf(driver.FindElement((By.ID("ddlFunzionalita")))));
SELEctElement selFunzionalita = new SELEctElement(driver.FindElement(By.ID("ddlFunzionalita")));
selFunzionalità.SELEctByValue(funzionalita);

问题是前两个字段被正确选择,但第三个desn没有选择任何内容并且测试失败并显示该消息:

OpenQA.SELEnium.StaleElementReferenceException : stale element reference: element is not attached to the page document (Session info: Chrome=89.0.4389.114)

如果我让线程休眠而不是:

wait.Until(ExpectedConditions.StalenessOf(driver.FindElement((By.ID("ddlFunzionalita")))));
SELEctElement selFunzionalità = new SELEctElement(driver.FindElement(By.ID("ddlFunzionalita")));

它有效。该错误报告在对应于以下内容的代码行上:

SELEctElement selFunzionalità = new SELEctElement(driver.FindElement(By.ID("ddlFunzionalita")));

那么我要问自己的是,我之前已经用条件捕获了该元素的 dom 变体,为什么找不到它? 我做错了什么?

解决方法

如果您收到 'StaleElementReferenceException',则表示该元素已更改,因为 DOM 已更改。 您需要在点击第一个和第二个元素后再次找到第三个元素。

点击下拉菜单(或其他元素)后,网页可能会发生变化。其他 div 或 span 将添加到您已找到的同一元素的页面或属性中。

大佬总结

以上是大佬教程为你收集整理的无法使用硒选择字段全部内容,希望文章能够帮你解决无法使用硒选择字段所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: