[英]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.