在selenium python中,按类名称查找元素的属性是什么?

在selenium python中,按类名称查找元素的属性是什么?,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,浏览器是否有任何属性。通过类名称(“类”)查找元素 例如,如果我有这样的代码: browser = webdriver.Firefox() browser.get(url) divs = browser.find_elements_by_class_name('class') <div class="foo"> <a href="" class="poo">one</a> <a

浏览器是否有任何属性。通过类名称(“类”)查找元素

例如,如果我有这样的代码:

browser = webdriver.Firefox()
browser.get(url)
divs = browser.find_elements_by_class_name('class')
<div class="foo">
    <a href="" class="poo">one</a>
    <a href="" class="poo">two</a>
    <a href="" class="poo">three</a>
</div>
<div class="foo">
    <a href="" class="koo">one</a>
    <a href="" class="koo">two</a>
    <a href="" class="koo">three</a>
</div>
现在我想从我的divs数组中获取所有的“a”标记。可能吗?

类名
是受支持的属性之一,也是接口的一个属性,该属性获取并设置指定元素的
class
属性的值

要从带有父标签的标签中获取文本,您可以使用以下任一定位器策略:

  • 使用
    类名

    divs = browser.find_elements_by_class_name('foo')
    
  • 使用
    CSS\u选择器

    print([my_elem.text for my_elem in WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "koo")))])
    
  • 使用
    XPATH

    print([my_elem.text for my_elem in WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div.foo a.koo")))])
    

您可以在元素中找到元素,并使用嵌套循环提取它们:

print([my_elem.text for my_elem in WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='foo']//a[@class='koo']")))])

是的,我知道。但是,我是否可以以某种方式获得我的div中的锚定标记的文本?我的意思是我想做一些类似的事情:divs.find\u elements\u by\u tag\u name('a')。但我不能做这样的事情,因为我得到了一个巨大的错误。那个错误说明了什么?是“AttributeError:“list”对象没有属性“find_elements_by_tag_name”?没关系,一切都正常。非常感谢。@frianH OP想得到
,但你的回答告诉class
foo
很幸运?嗨@DebanjanB我不认为我们需要讨论
divs
,它只是一个变量名。”现在我想从我的divs数组中获取所有的“a”标记。可能吗?“是的@DebanjanB,我想上面的答案已经回答了主要问题,从
div
中的每个
div
中获取所有
a
标记
divs = browser.find_elements_by_class_name('foo')

for div in divs:
    elements = div.find_elements_by_tag_name('a')
    for element in elements:
        print(element.text)