我可以获取属性包含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
列表中的所有链接...
我不明白...请帮忙吗?
答案 0 :(得分:0)
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
答案 1 :(得分:0)
要获取所有链接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)