【问题标题】:How I can find this element by selenium / python我如何通过 selenium / python 找到这个元素
【发布时间】:2021-11-09 14:31:31
【问题描述】:

我想点击这个元素,但我不知道如何找到它。 这是 HTML 代码:

<div class="qF0y9  Igw0E     IwRSH      eGOV_         _4EzTm    " style="height: 30px;">
   <span class="FLeXg bqE32">
      <span class="vBF20 _1OSdk">
         <button class="_5f5mN       jIbKX  _6VtSN     yZn4P   ">Follow</button>
      </span>
      <span class="mLCHD _1OSdk">
         <button class="_5f5mN       jIbKX KUBKM      yZn4P   ">
            <div class="            qF0y9          Igw0E   rBNOH          YBx95       _4EzTm                                                                                zQLcH            XTCZH                  ">
               <span style="display: inline-block; transform: rotate(180deg);">
                  <svg aria-label="Down Chevron Icon" class="_8-yf5 " color="#ffffff" fill="#ffffff" height="12" role="img" viewBox="0 0 48 48" width="12">
                     <path d="M40 33.5c-.4 0-.8-.1-1.1-.4L24 18.1l-14.9 15c-.6.6-1.5.6-2.1 0s-.6-1.5 0-2.1l16-16c.6-.6 1.5-.6 2.1 0l16 16c.6.6.6 1.5 0 2.1-.3.3-.7.4-1.1.4z"></path>
                  </svg>
               </span>
            </div>
         </button>
      </span>
   </span>
</div>

我尝试使用 XPATH/CLASSNAME/CSS 选择器找到它,但还是没有通过。

有人可以帮我吗?

【问题讨论】:

  • 您能分享一个指向该页面的链接吗?另请更正您提供的 HTML 代码。

标签: python selenium selenium-webdriver xpath webdriverwait


【解决方案1】:

要单击文本为 Follow 的元素,您可以使用以下任一Locator Strategies

  • 使用xpath

    driver.find_element(By.XPATH, "//button[text()='Follow']").click()
    

所需元素是动态元素,因此理想情况下,点击该元素需要诱导WebDriverWaitelement_to_be_clickable(),您可以使用以下Locator Strategies之一:

  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Follow']"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

【讨论】:

  • WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Follow']"))).click() TypeError: '模块的对象不可调用
  • 这三个导入你都做了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
  • 2022-01-17
  • 2020-11-19
  • 2019-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多