无法使用硒找到元素 (python)

Cannot find element using selenium (python)

所以我尝试查看网站中的 iframe,但无法弄清楚该元素属于何处。我试图通过 class 名称访问元素。下面是我的代码,这是网站。

from requests import get
from bs4 import BeautifulSoup
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
from selenium import webdriver

browser = webdriver.Chrome(executable_path= '/Users/abeelcf/Downloads/chromedriver')
browser.get('https://www.redfin.com')
zipcode = input("Enter a zip code to look up: ")
search_form = browser.find_element_by_id('search-box-input')
search_form.send_keys(zipcode)
search_form.submit()

#pg 2
browser.find_element_by_id("MapHomeCard_0")

URL是https://www.redfin.com/zipcode/20007

最后一行有问题。它找不到元素 MapHomeCard_0 说元素 没有这样的元素 .

您需要在 search_box 提交后等待页面加载,请使用网络驱动程序等待。

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'MapHomeCard_0')))

同时导入以下内容

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

定位需要归纳的元素 for the visibility_of_element_located() and you can use either of the following :

  • 使用XPATH:

    driver.get('https://www.redfin.com')
    search_form = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='search-input-box' and @id='search-box-input'][@title='City, Address, School, Agent, ZIP']")))
    search_form.send_keys("20007")
    search_form.submit()
    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='homecards']/div[@id='MapHomeCard_0']"))).text)
    
  • 使用CSS_SELECTOR:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.homecards>div#MapHomeCard_0"))).text)
    
  • 控制台输出:

    LISTED BY REDFIN
    3D WALKTHROUGH
    4,000
    1 Bed
    1 Bath
    1,014 Sq. Ft.
    2500 Q St NW #412, Washington, DC 20007
    
  • 注意:您必须添加以下导入:

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

参考资料

您可以在以下位置找到关于 的一些相关讨论: