selenium - 如何避免页面对象中的复合类名称错误?

标签 selenium selenium-webdriver pageobjects page-object-gem

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

Compound class names not permitted Selenium::WebDriver::Error::UnknownError)

如何使用有空格的类名。

例如:

class = "country name"

最佳答案

改用 CSS 选择器:

.country.name

需要注意的是,这个例子是错误的!如果“国家名称” 意味着一个国家的名称,那就是。类名中不能有空格。事实上,class 属性是一个以空格分隔的类列表。这意味着,如果您有一个类国家名称,它不是一个类,而是您的元素所属的两个不同类 - 第一个是国家 ,第二个是名称!

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

关于selenium - 如何避免页面对象中的复合类名称错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17808521/

相关文章:

python - 等到元素不出现 - Selenium

javascript - Selenium:如何使 RemoteDriver 始终附加到当前浏览器选项卡?

javascript - Protractor - 失败 : prop is not defined

java - 如何在 Selenium 中为我的网站发送 key

Selenium:如何从 html 源获取纯文本?

c# - 多个进程并行运行时的 Selenium WebDriver 异常

python - 有什么方法可以告诉 selenium 在某个时候不要执行 js?

selenium - 使用带有 selenium Geckodriver 的 http 代理

python - 如何使用 pythonw 运行 Selenium Webdriver?

java - 将 xpath 从 String 转换为 WebElement