【问题标题】:Locate element without any name or class using Selenium and Python使用 Selenium 和 Python 定位没有任何名称或类的元素
【发布时间】:2020-11-22 22:35:35
【问题描述】:

我正在使用 Selenium,我想获取“a”标签,以便导航到我的用户配置文件。最好的方法是什么?

这是 HTML:

<div class="parent-cont">
  <div class="akd3 dafk4 dfan4">...</div>
  <div class="avndkd dakdf">...</div>
  <div class="fjkad fdadj dfakees">
    <a aria-label="tag" class="oa2 g5iad jhuo" href="/profile.php?id=1792" role="link" tabindex="0">
      <div class="dsks dssks">...</div>
      <div class="dka dk2 fdakdd">...</div>
    </a>
  </div>
</div>

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:

    要定位元素,您可以使用以下任一Locator Strategies

    • 使用css_selector

      element = driver.find_element_by_css_selector("a[aria-label='tag'][href='/profile.php?id=1792']")
      
    • 使用xpath

      element = driver.find_element_by_xpath("//a[@aria-label='tag' and @href='/profile.php?id=1792']")
      

    理想情况下,要定位您需要为WebDriverWait 诱导visibility_of_element_located() 的元素,您可以使用以下任一Locator Strategies

    • 使用CSS_SELECTOR

      element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a[aria-label='tag'][href='/profile.php?id=1792']")))
      
    • 使用XPATH

      element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@aria-label='tag' and @href='/profile.php?id=1792']")))
      
    • 注意:您必须添加以下导入:

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

    【讨论】:

      猜你喜欢
      • 2020-06-17
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 2021-05-05
      • 1970-01-01
      相关资源
      最近更新 更多