Class By.ByClassName在www.example.com中的定义By.java如下:
/**
* Find elements based on the value of the "class" attribute. If an element has multiple classes, then
* this will match against each of them. For example, if the value is "one two onone", then the
* class names "one" and "two" will match.
*
* @param className The value of the "class" attribute to search for.
* @return A By which locates elements by the value of the "class" attribute.
*/
public static By className(String className) {
return new ByClassName(className);
}
4条答案
按热度按时间slwdgvem1#
我不认为巴拉马诺斯的回答已经完全说明了这一点。
假设我们有如下几个元素:
<div class="value test"></div>
<div class="value test "></div>
<div class="first value test last"></div>
<div class="test value"></div>
XPath如何匹配
value test
,类顺序要紧)value
和test
类)而且,在这种情况下,Css选择器总是支持XPath(快速、简洁、原生)。
ovfsdjhp2#
试试看:
2eafrhcq3#
分类依据.按类名
Class By.ByClassName在www.example.com中的定义By.java如下:
此用例
因此,根据定义,您不能将多个类(即
value
和test
)作为参数传递给@FindBy(className = "...")
。发送多个类将引发如下错误:溶液
有多种方法可以解决此用例,如下所示:
classname
**value
**唯一标识,则可以用途:classname
**test
**唯一标识,则可以用途:classnames
、**value
和test
**都是标识元素所必需的,则可以按如下所示使用css-selectors:tl; dr
无效的选择器:使用Selenium时出现不允许使用复合类名的错误
btxsgosb4#
如果还有人想知道的话,我通过用点连接类名来完成这个任务:
巨蟒: