我尝试使用以下代码按类名查找元素:
result.find_element_by_class_name("0")
result
是WebElement
,其中包含我要查找的元素。 (我很确定)
html-code
是:
<tr class="0"></tr>
但如果我这样做,我会收到以下错误:
selenium.common.exceptions.InvalidSelectorException:消息:给定的选择器0无效或不会产生WebElement。发生以下错误:
InvalidSelectorError:指定了无效或非法的类名
我可以通过类名找到WebElements
内的其他result
(例如,有一个名为last
的元素,如果我尝试获取它,它可以工作)
那么,如果类名是Number
,我如何按类名查找元素? (这是一个字符串)
答案 0 :(得分:10)
IList<T>
使用了 CSS选择器(source):
find_element_by_class_name()
而且,问题是,根据CSS grammar“0”不是有效的类名,因为名称必须以下划线(if by == By.ID:
by = By.CSS_SELECTOR
value = '[id="%s"]' % value
elif by == By.TAG_NAME:
by = By.CSS_SELECTOR
elif by == By.CLASS_NAME: # < HERE
by = By.CSS_SELECTOR
value = ".%s" % value
elif by == By.NAME:
by = By.CSS_SELECTOR
value = '[name="%s"]' % value
),连字符(_
)开头或一封信(relevant topic)。在这种情况下,您可以通过XPath找到元素:
-