Selenium按类名称查找元素和按css选择器查找元素无效

2024-10-02 22:30:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在抓取一个具有以下结构的网站:

<div class="cr__stores-list">
  <div class="cr__stores-item">store1</div>
    <a href="/stores/store1/">
    <div class="cr__stores-item-b">
      <div class="cr__container-name">
        <h3 class="cr__container-name-title cr__text--subtitle3 cr__textColor--colorDark300">
          Store Name
        </h3>
      </div>
     </div>
    </div>
  <div class="cr__stores-item">store2</div>
    ...
    ...
  <div class="cr__stores-item">store3</div>
  <div class="cr__stores-item">store4</div>
</div>

每个“div^{cl 1}”$

到目前为止,我有以下代码:

    wd = webdriver.Chrome('chromedriver', options=options)
    wd.get('stores_url')        
    element = WebDriverWait(wd, 20).until(EC.presence_of_element_located((By.CLASS_NAME, "cr__stores-list")))
    list_stores_tags = element.find_elements_by_class_name("cr__stores-item")
    for store_tag in list_stores_tags:
        # store_tmp = store_tag.find_element_by_class_name("cr__container-name-title cr__text--subtitle3 cr__textColor--colorDark300")
        # store_tmp = store_tag.find_element_by_css_selector('h3.cr__container-name-title cr__text--subtitle3 cr__textColor--colorDark300')
        store= store_tmp.text
        url_tmp = store_tag.find_element_by_tag_name("a")
        url = url_tmp.get_attribute('href')

这两行注释是我尝试获取商店名称的结果。 有了这段代码,我成功地获得了每个商店的所有URL,没有问题。 但是,我无法获取存储名称。按类名称查找元素和按css选择器查找元素似乎都不起作用,因为在这两种情况下,我都会遇到异常:

消息:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:.cr__容器-name-title cr__文本--subtitle3 cr__文本颜色--colorDark300”} (会话信息:无头镀铬=87.0.4280.88)

消息:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:“h3.cr_uu容器-name-title cr_u文本--subtitle3 cr_u文本颜色--colorDark300”} (会话信息:无头镀铬=87.0.4280.88)

我做错了什么?欢迎提出任何建议。 谢谢


Tags: storenamediv元素titletag选择器element