属性在 selenium Python 中引发 NoSuchElementException

Attribute raises NoSuchElementException in selenium Python

我可以获取属性包含 X 的元素,但我无法获取属性本身。为什么?

此代码不会引发任何错误:

links = browser.find_elements_by_xpath('//div[@aria-label="Conversations"]//a[contains(@data-href, "https://www.messenger.com/t/")]')

此代码引发 NoSuchElementException 错误:

links = browser.find_elements_by_xpath('//div[@aria-label="Conversations"]//a[contains(@data-href, "https://www.messenger.com/t/")]/@data-href')

此代码是从聊天的 Messenger 主页中提取的。我想获得 ul 列表中的所有链接... 我不明白...请帮忙?

wait = WebDriverWait(driver, 20)
lists=wait.until(EC.presence_of_all_elements_located((By.XPATH, '//div[@aria-label="Conversations"]//a[contains(@data-href, "https://www.messenger.com/t/")]/@data-href')))
 for element in lists:
      print element.text

注意:将以下导入添加到您的解决方案

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

要获取所有链接 data-href 值,您需要遍历链接元素并使用 get_attribute()

links = browser.find_elements_by_xpath('//div[@aria-label="Conversations"]//a[contains(@data-href, "https://www.messenger.com/t/")]')
ul_list=[link.get_attribute("data-href") for link in links]
print(ul_list)