簡體   English   中英

如何使用 selenium (python) 找到不在頁面源中的元素

[英]How can I find elements that are not in the page source using selenium (python)

目前我正在嘗試從網站上抓取一些東西。 為此,我需要 email 的內容,因此我為此使用 yopmail( https://yopmail.com )。 在 yopmail 中,您的郵件位於屏幕左側,郵件主題位於其下方。 這段文字是我需要的部分。 [郵件視圖][1] [devtools 代碼][2]

現在的問題是該代碼在頁面源中不可用。 對於我在網上的紅色,它可能是由 javascript 代引起的,但我不確定這正是問題所在

我嘗試了多種解決方案:

嘗試1:使用beautifulSoup並定位元素(失敗,因為不在頁面源中)

嘗試 2:嘗試使用 xpath 和 selenium 驅動程序定位元素(也無法找到)

嘗試 3:獲取主體的內部 html(在該 html 中仍然不可用)

driver.find_element_by_tag_name('body').get_attribute('innerHTML')

感覺好像沒有任何效果,而且這里的其他相關帖子也沒有給我一個有幫助的答案。 有沒有人可以幫我解決這個問題? [1]: https://i.stack.imgur.com/vTi0s.png [2]: https://i.stack.imgur.com/nmBZ8.png

您嘗試獲取的元素似乎位於 iframe 中,這就是您無法找到它的原因。 因此,首先您必須使用以下命令切換到 iframe:

WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.ID ,'ifinbox')))

element = driver.find_element(By.XPATH, "//div[@class='lms']")
print(element.text)

完成后,您可以使用切換回默認內容

driver.switch_to.default_content()

注意:您需要導入以下內容

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM