代碼試驗:
driver.get(url)
cards = driver.find_elements_by_class_name("job-cardstyle__JobCardComponent-sc-1mbmxes-0")
for card in cards:
data = card.get_attribute('text')
print(data)
driver.close()
driver.quit()
“卡片”正在回傳 selenium webelement,我無法通過 for 回圈從中提取文本。
uj5u.com熱心網友回復:
- 檢查您的 webelement 路徑是否正確提及
- 從元素中獲取文本
- 列印它
uj5u.com熱心網友回復:
問題在這一行
data = card.get_attribute('text')
您可以執行以下操作:
采用
.textfor card in cards: data = card.text print(data)采用
innerTextfor card in cards: data = card.get_attribute('innerText') print(data)
此外,根據上面的評論,您應該列印卡片串列長度以更好地除錯它。
print(len(cards))
所以如果它里面有什么東西。
uj5u.com熱心網友回復:
而不是get_attribute('text')您需要使用以下text屬性:
data = card.text
解決方案
要定位可見元素,您需要為visibility_of_all_elements_located()誘導WebDriverWait,您可以使用以下解決方案:
driver.get(url)
cards = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "job-cardstyle__JobCardComponent-sc-1mbmxes-0")))
for card in cards:
data = card.text
print(data)
注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
奧特羅
在一行中,您可以使用List Comprehension,如下所示:
print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "job-cardstyle__JobCardComponent-sc-1mbmxes-0")))])
uj5u.com熱心網友回復:
這在一定程度上有效:
driver.get("https://www.monster.com/jobs/search?q=Python-Developer&where=Las Vegas, NV&page=1")
WebDriverWait(driver, 30).until(EC.visibility_of_all_elements_located((By.XPATH, "//*[@data-test-id = 'svx-job-title']")))
jobs = driver.find_elements(By.XPATH, "//div[contains(@class, 'job-cardstyle__JobCardHeader')]")
all_jobs = [job.text for job in jobs]
print(all_jobs)
WebdriverWait 匯入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
輸出:
['Software engineer III\nRandstad USA\nLas Vegas, NV', 'C\nPython Developer\nconfidential\n$55 - $65 / Per Hour', 'C\nSenior Software Engineer\nCox Communications Inc\nLas Vegas, NV', 'Mission Systems Engineer\nDCS Corporation\nLas Vegas, NV', 'G\nSoftware Engineer - 914\nGCR Technical Staffing\nHenderson, NV', 'Z\nNetSuite Developer\nZone & Company Software Consulting\nLas Vegas, NV', 'IT Project Engineer\nRauland Florida by Ametek, Inc.\nSunrise, NV', 'A\nWeb Developer\nArdor Global', 'Senior Software Engineer – Node\nMeridian Technology Group Inc.']
Process finished with exit code 0
您可以使用\n分隔符拆分串列以供進一步使用。此外,該站點似乎動態加載卡片,即,當您向下滾動時,會加載新卡片,因此您可能無法在一個實體中獲得所有卡片。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/454796.html
