我正在使用Selenium来解析包含看起来有点像这样的标记的页面:
<html>
<head><title>Example</title></head>
<body>
<div>
<span class="Fw(500) D(ib) Fz(42px)">1</span>
<span class="Fw(500) D(ib) Fz(42px) Green XYZ">2</span>
</div>
</body>
</html>
我想获取包含foobar类的所有span元素。
我已经尝试了这两个(变量wd是selenium.webdriver的一个实例):
elem = wd.find_elements_by_css_selector("span[class='Fw(500) D(ib) Fz(42px).']")
elem = wd.find_element_by_xpath("//span[starts-with(@class, 'Fw(500) D(ib) Fz(42px))]")
没有工作。
如何只选择以Fw(500) D(ib) Fz(42px)
即。两个都是给定样本标记中的元素。
答案 0 :(得分:2)
尝试如下: -
elem = wd.find_elements_by_css_selector("span.foobar")
如果课程foo
和bar
之间有空格,请尝试以下操作: -
elem = wd.find_elements_by_css_selector("span.foo.bar")
已修改:如果您的类包含非字母字符,并且您想要找到以Fw(500) D(ib) Fz(42px)
开头的元素,请尝试以下操作: -
elem = wd.find_elements_by_css_selector("span[class ^= 'Fw(500) D(ib) Fz(42px)']")
答案 1 :(得分:-1)
尝试通过XPath查找元素:
//span[@class='foobar']
这应该有效。