如何解决在Selenium中获取“ Nosuch element Exception”尽管XPATH是正确的由于Shadow DOM,不确定这是什么请确认
我正在尝试使用Selenium自动化Salesforce应用程序并获得NoSuchelementException
,尽管XPATH对于特定对象是正确且有效的。当我搜索问题时,可能是Shadow DOM的原因。
对于EX:
所以我写的XAPTH
driver.findElement(By.xpath("//input[@name='Name']")).sendKeys("Jams");
或
driver.findElement(By.xpath("//input[@id='input-299']")).sendKeys("Jams");
此XPATH也在控制台中突出显示。但是在自动执行时,不会引发任何此类错误。
因此,在检查ShadowDOM选项时,正在为Name Object获得这样的选项。
#shadow-root(user-agent)
Shadowroot DIV
-div中未提及。它只是打开和关闭标签。
如何自动执行此操作?
解决方法
您可以检查Dom中是否有iframe。只需在页面开发人员模式(F12)>元素选项卡>搜索(Ctrf + F)区域中执行//iframe
。如果有的话,您将获得iframe的数量。
现在,如果您的文本框位于任何iframe中,请使用下面的代码先进入特定的iframe
driver.switch_to.frame("<name or Id of frame>")
然后在下面列出使用方法:
driver.switch_to.parent_frame()
此外,如果该问题与框架无关,请在下面检查与阴影根相关的问题:
您可以在下面检查是否有阴影根元素(问题是Java的,但您可以共同关联):
,现在大多数使用javascript创建网站内容。您可能需要等待某些元素加载后才能对其进行任何操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。