使用python selenium从aria标签获取值[已关闭]

xdnvmnnf  于 2023-02-04  发布在  Python
关注(0)|答案(2)|浏览(267)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
Improve this question
我试图从这行代码中获取Aria标签值“021”,但返回了None
我目前的代码enter image description hereenter image description here

efzxgjgh

efzxgjgh1#

需要为bdi元素而不是span元素设置xpath。bdi元素包含要提取的文本021
应该是

byy = driver.find_element(By.XPATH,"//*[@id='__label12-bdi']")
0aydgbwb

0aydgbwb2#

根据给定的HTML:

可以从<span>标记或从后代<bdi>标记提取***021***。
溶液
要打印***021***,您需要为visibility_of_element_located()引入WebDriverWait,您可以使用以下locator strategies之一:

  • 使用<span>标记和 * aria-label * 属性:
  • 使用 * CSS选择器 *:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span#__label12"))).get_attribute("aria-label"))
  • 使用 * XPATH *:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[@id='__label12']"))).get_attribute("aria-label"))
  • 使用<bdi>标记和 * text * 属性:
  • 使用 * CSS选择器 *:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span#__label12 bdi#__label12-bdi"))).text)
  • 使用 * XPATH *:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[@id='__label12']/bdi[@id='__label12-bdi']"))).text)
      • 注意**:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

相关问题