如何使用Xpath,CSS或Selenium中的任何其他定位符在html中的结束标记后查找带有“ == $ 0”的元素

时间:2019-11-25 14:28:01

标签: html css selenium selenium-webdriver xpath

我必须在“ span”的结束标记后找到带有“ == $ 0”的元素。以下是元素的HTML代码。

<div _ngcontent-c6="" class="col-12">
<span _ngcontent-c6="">Registration with prefilled user's data</span>
</div>

尽管我复制了html代码,但它本身删除了“ == $ 0”。所以我还要附上图片。

enter image description here

我试图找出解决方案,但是没有用。我尝试了xpath,它通常像 .// span [text()='使用预填充的用户数据进行注册'] 一样工作,但是没有成功。我刚刚发现“我们可以在Chrome控制台中使用语法'$ 0'访问此元素,并且在这里可以正常工作

enter image description here

但是我不知道如何使用 xpath CSS 或Selenium中任何推荐的定位器策略找到它。

注意:请不要提及任何解决方法,例如将 className css 与类名称如 div.col-12 span 用作我已经知道了我的问题是使用 == $ 0 处理元素。

1 个答案:

答案 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或链接到要自动化的页面,以便我们为您提供更好的帮助。