我必须在“ span”的结束标记后找到带有“ == $ 0”的元素。以下是元素的HTML代码。
<div _ngcontent-c6="" class="col-12">
<span _ngcontent-c6="">Registration with prefilled user's data</span>
</div>
尽管我复制了html代码,但它本身删除了“ == $ 0”。所以我还要附上图片。
我试图找出解决方案,但是没有用。我尝试了xpath,它通常像 .// span [text()='使用预填充的用户数据进行注册'] 一样工作,但是没有成功。我刚刚发现“我们可以在Chrome控制台中使用语法'$ 0'访问此元素,并且在这里可以正常工作
但是我不知道如何使用 xpath 和 CSS 或Selenium中任何推荐的定位器策略找到它。
注意:请不要提及任何解决方法,例如将 className 或 css 与类名称如 div.col-12 span 用作我已经知道了我的问题是使用 == $ 0 处理元素。
答案 0 :(得分:5)
因此== $0
文本与您认为的含义不完全相同。这只是Chrome开发者工具的功能,而不是页面上的实际元素。这是开发人员工具使用的属性,可让您通过控制台测试脚本。 here对此进行了讨论,它并不影响Selenium在页面上定位元素的能力。
问题可能出在您正在使用的选择器上,或者是隐藏在DOM中较高位置的iframe
隐藏元素。
您可以尝试此XPath:
//span[contains(text(), "Registration with prefilled user's data")]
我刚刚将text()='text'
查询换成contains(text(), 'text')
,这可能说明了span
元素内的任何隐藏空格。
鉴于页面上没有特殊情况,此XPath对span
元素是正确的。因此,如果这对您不起作用,建议您发布完整的HTML或链接到要自动化的页面,以便我们为您提供更好的帮助。