【问题标题】:How to get class of an image that I found earlier using its xpath?如何获取我之前使用其 xpath 找到的图像的类别?
【发布时间】:2015-05-16 22:31:12
【问题描述】:

所以,我找到了使用它的 xpath 的图像

image = browser.find_element_by_xpath('.//*[@id=\'image\']')

我需要检查它是否有“thatOneImage”类

怎么做?

使用 selenium 和 python

【问题讨论】:

  • 那么检查它的类属性?

标签: python selenium xpath selenium-webdriver


【解决方案1】:

您可以使用get_attribute() 获取image 的类属性并检查属性值是否是预期的类:

image = browser.find_element_by_xpath('.//*[@id="image"]')
classToCheck = "thatOneImage"

#check if image has class thatOneImage
isHasTheClass = classToCheck in image.get_attribute('class')

如果image 可以有复合类,您可能需要先将其拆分为单独的类:

image = browser.find_element_by_xpath('.//*[@id="image"]')
classToCheck = "thatOneImage"

#split compound class into individual classes 
classes = image.get_attribute('class').split(' ')
#check if 'thatOneImage' is one of the class image has
isHasTheClass = classToCheck in classes

【讨论】:

  • 如果我错了,请纠正我。如果您 split ' ' 的字符串,它将返回一个字符串列表,在这种情况下,in 会按预期工作吗?
  • @Saifur 是的。尽管第二个示例中in 的含义与第一个示例中的in 略有不同。 'test' in ['test', 'foo', 'bar']return True,那预期的行为对吗?
【解决方案2】:

您可以轻松找到任何WebElement 的类属性并进行快速字符串搜索,如下所示:

image = browser.find_element_by_xpath('.//*[@id=\'image\']')

attr = image.get_attribute('class')

if 'thatOneImage' in attr:
  print "Class found"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多