3 回答
TA贡献1770条经验 获得超3个赞
Leon的评论提出了正确的信息,即不再支持复合类名称。相反,您可以尝试使用CSS选择器。就您而言,以下代码行应帮助您获取所需的元素:
el3 = driver.find_element_by_css_selector(".action-btn.cancel.alert-display")
它在class属性中找到具有所有三个类(action-btn,cancel和alert-display)的元素。请注意,这里的类顺序无关紧要,任何类都可以出现在class属性中的任何位置。只要元素具有所有三个类,就将其选中。如果您希望固定类的顺序,则可以使用以下xpath:
el3 = driver.find_element_by_xpath("//*[@class='action-btn cancel alert-display']")
TA贡献1887条经验 获得超5个赞
这个问题我来晚了。但是,当您不熟悉Xpath时,也可以通过使用tag_name和get_attribute('class')将复合类作为String来处理,从而找到了解决方法。它需要更多的代码行,但是很简单,适合像我这样的初学者。
elements = driver.find_elements_by_tag_name('Tag Name Here')
for element in elments:
className = watchingTable.get_attribute('class')
print(className)
if className == 'Your Needed Classname':
#Do your things
TA贡献1883条经验 获得超3个赞
使用这种方式一会儿之后。我发现这可能不是一个好的解决方案。因为当TagName为'DIV'或'SPAN'时,每次尝试查找太重的元素时都必须遍历整个文档。此外,在页面加载时,您可能必须添加一些Try Except错误句柄以摆脱烦人的异常。了解并熟悉sagarwadhwa1的答案表明这将是一个很好的实践
添加回答
举报