如何为带有 $ 符号的 Class 的元素编写选择器

Posted

技术标签:

【中文标题】如何为带有 $ 符号的 Class 的元素编写选择器【英文标题】:How to write a selector for an element with a Class that has a $ sign 【发布时间】:2017-02-05 05:17:43 【问题描述】:

我正在研究移动测试自动化。基本上我正在尝试在android模拟器中使用APPIUM和Eclipse(HELios)和JAVA来选择一个新的日期。时间选择器的类名是:

android.widget.RadialTimePickerView$RadialPickerTouchHelper

你可以有美元符号($)。如果我使用以下语法。

List timeButtons = driver.findElements(By.xpath("//android.widget.RadialTimePickerView$RadialPickerTouchHelper"));

我收到一条错误消息,XPATH/CSS 选择器无效。

【问题讨论】:

然后使用单引号,$ 将不会被解释。 面临完全相同的问题。您能否为这种情况找到可行的解决方案 【参考方案1】:

您的 XPath 无效。没有元素android.widget.RadialTimePickerView$RadialPickerTouchHelper。你想要类似的东西

driver.findElements(By.xpath("//div[@class='android.widget.RadialTimePickerView$RadialPickerTouchHelper']"));

您需要将DIV 部分替换为包含该类的任何元素。

【讨论】:

【参考方案2】:

您可以使用类名识别元素,将其存储在列表中并使用其索引或某些属性访问它。

List <WebElement> allElements = driver.findElements(By.classname("android.widget.RadialTimePickerView$RadialPickerTouchHelper"))

在此之后,迭代列表并执行操作

【讨论】:

以上是关于如何为带有 $ 符号的 Class 的元素编写选择器的主要内容,如果未能解决你的问题,请参考以下文章

如何为带有可选参数的函数编写测试

如何为排除的元素生成带有零的向量组合矩阵?

如何为相同类型的嵌套元素创建带有 key/keyrefs 的 xml 模式

如何为每个li元素添加一个带有元素数量的类?

如何为一个li标签添加图片符号?

Bootstrap-vue b-table:如何为非活动行设置 css-Class?