c# - Selenium如何确定元素是否有孩子?
问题描述
我通过 c# 使用 Selenium。我使用这个 XPath 来获取所有子元素
element.FindElements(By.XPath("./child::*"));
虽然如果没有孩子,它会在超时后抛出错误。我正在寻找一种简单的方法来确定它是否有孩子以避免异常。
解决方案
根据您要获取父节点的所有子节点的问题,您可以在xpath中使用具有following-sibling::*属性的方法,如下所示:FindElements()
示例代码块:
List<IWebElement> textfields = new List<IWebElement>(); textfields = driver.FindElements(By.XPath("//desired_parent_element//following-sibling::*"));
注意:当
FindElements()
与隐式或显式等待结合使用时,FindElements()
一旦找到的集合中的项目超过 0 个,方法将立即返回,或者如果达到超时将返回一个空列表。XPath 详细信息:
- 描述:此xpath技术用于定位特定节点的兄弟元素。
- 说明:xpath表达式获取使用desired_parent_element定位的父元素的所有兄弟元素。
推荐阅读
- java - 有没有办法从 UNSELECTED 单选按钮显示文本?
- database - 在访问中结合名字和姓氏
- vba - Filename.xls 被“用户名”锁定编辑
- json - yeoman generator方法中将字符串解析成json
- android - 有什么作用!在 Kotlin 中的参数/变量名称之后是什么意思?
- python - 为什么 Pandas 的空格分隔符会跳过我的值之一?
- javascript - 如何基于权限进行条件渲染
- html - 您如何使图像准确地跨越 eBay 的描述字段的宽度?(无水平滚动)
- python - 显示图像的文件名 Python imshow
- c++ - 我的 c++ 程序似乎没有评估字符串和我拥有但使用 getline 输入的变量之间的比较