我尝试使用 Selenium 解析一些 html 。问题是,如果类名包含空格,则会引发错误。
以下是我正在搜索的代码:<p class="p0 ng-binding">text</p>
我已尝试过这两个选项:
result.find_element_by_class_name('departure').find_element_by_css_selector('p.p0 ng-binding').text
result.find_element_by_class_name('departure').find_element_by_class_name('p0 ng-binding').text
>>> selenium.common.exceptions.InvalidSelectorException: Message: The given selector p0 ng-binding is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: Compound class names not permitted
有人可以给我一个提示吗?
答案 0 :(得分:6)
p
元素有两个类:p0
和ng-binding
。
试试这个选择器:
find_element_by_css_selector('p.p0.ng-binding')
答案 1 :(得分:1)
正如@eee指出的那样,要检查multiple classes in a CSS selector,请用点加入它们:
p.p0.ng-binding
但问题是,ng-binding
类不是基于定位器的好选择。相反,请仅查看p0
课程:
p.p0
答案 2 :(得分:0)
此问题不允许使用复合类名称,因为类名有多个单词,您可以使用下面的css-selectors解决此问题
CssSelector("[class*='p0 ng-binding']"); //or
CssSelector("[class='p0 ng-binding']");
希望这会对你有所帮助。如果你有任何疑问,请回复