使用Selenium和Python查找不带任何名称或类的元素

使用Selenium和Python查找不带任何名称或类的元素,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我使用的是Selenium,我想抓取“a”标记,以便导航到我的用户配置文件。最好的方法是什么 以下是HTML: <div class="parent-cont"> <div class="akd3 dafk4 dfan4">...</div> <div class="avndkd dakdf">...</div> <div class="fjkad

我使用的是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>

...
...

要定位元素,可以使用以下任一方法:

  • 使用
    css\u选择器

    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']")
    

理想情况下,为了定位元素,您需要对元素的可见性进行归纳。\ u element\u located(),您可以使用以下任一方法:

  • 使用
    CSS\u选择器

    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