使用Selenium解析html - 类名称包含空格

时间:2015-06-20 11:37:09

标签: python html parsing selenium text

我尝试使用 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

有人可以给我一个提示吗?

3 个答案:

答案 0 :(得分:6)

p元素有两个类:p0ng-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']");

希望这会对你有所帮助。如果你有任何疑问,请回复