使用Java中的Selenium通过部分CSS类查找所有元素

时间:2018-09-29 17:39:18

标签: java selenium selenium-webdriver css-selectors

我见过this question,但这并不是我真正需要的。

我正在尝试使用Selenium使2048自动化。当您开始演奏时,元素的class会发生变化。具有该值的图块具有3个或4个不同的类,具有以下模式:

tile tile-1024 tile-position-1-2 
tile tile-2 tile-position-4-1 tile-new
tile tile-8 tile-position-1-4 tile-merged

我想知道如何find所有在其类中具有此模式的元素:

tile tile-[TEIL SCORE] tile-position-[Any Number]-[Any Number]

这是我的HTML。很抱歉,Chrome控制台不允许我在不展开的情况下复制它:

enter image description here

2 个答案:

答案 0 :(得分:1)

要根据模式查找所有元素,可以使用以下 cssSelector

.tile[class^='tile-'][class^='tile-position-']

答案 1 :(得分:1)

在CSS中无法添加正则表达式。仅可用选项为*,$,^。 但是您可以根据以下条件进行搜索,这符合您的条件,但可能会匹配几乎所有图块:

div[class^='tile-'][class^='tile-position]

相反,您可以通过提供您要专门查找的图块的编号和行来更加具体,例如第2行中编号为4的图块。

div[class^='tile-4'][class^='tile-position-2]