如何避免Page Object中的复合类名错误?

KAK*_*KAK 11 selenium pageobjects page-object-gem selenium-webdriver

当我尝试使用class = "country name"在页面对象中有空格的类名时,我得到:

Compound class names not permitted Selenium::WebDriver::Error::UnknownError)
Run Code Online (Sandbox Code Playgroud)

如何使用具有空格的类名.

例如:

class = "country name"
Run Code Online (Sandbox Code Playgroud)

Pet*_*ček 17

改为使用CSS选择器:

.country.name
Run Code Online (Sandbox Code Playgroud)

需要注意的重要一点是这个例子是错误的!如果"country name"是一个国家的名称,那就是.类名不能包含空格.实际上,该class属性是一个以空格分隔的类列表.这意味着如果你有一个类country name,它不是一个类,它是你的元素所属的两个不同的类 - 第一个是country,第二个是name!

因此,如果他们错了,请修改你的课程.如果它们不是,使用CSS选择器,它是匹配多个类的唯一可靠方法(除了非常长且复杂的XPath表达式).不要使用具有天真属性比较(//*[@class='country name']*[class='country name'])的普通XPath表达式或CSS选择器,这是完全错误的.