代码之家  ›  专栏  ›  技术社区  ›  boyenec

selenium python产品加载按钮不工作

  •  0
  • boyenec  · 技术社区  · 5 年前

    这个 page

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.common.exceptions import TimeoutException
    import time
    
    
    driver =  webdriver.Chrome()
    driver.maximize_window()
    url ='https://www.billigvvs.dk/maerker/grohe/produkter?min_price=1'
    driver.get(url)
    
    time.sleep(5)
    
    #accept cookies 
    try:
       driver.find_element_by_xpath("//button[@class='coi-banner__accept']").click()
    except:
        pass
        print('cookies not accepted')
    
    # Wait 20 seconds for page to load.
    timeout = 20
    try:
        WebDriverWait(driver, timeout).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='productbox__info__name']")))
    except TimeoutException:
        print("Timed out waiting for page to load")
        browser.quit()
    
    
    #my page load button not working. I want to load all 790 product in this page 
    products_load_button = driver.find_element_by_xpath("//div[@class='filterlist__button']").click()
    

    我得到的错误是:

    Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@class='filterlist__button']"}
      (Session info: chrome=87.0.4280.88)
    

    错误消息说找不到元素,但看到图片说我正在选择正确的元素。 enter image description here

    1 回复  |  直到 5 年前
        1
  •  1
  •   EnriqueBet    5 年前

    结尾处缺少额外空间,请尝试以下操作:

    products_load_button = driver.find_element_by_xpath("//div[@class='filterlist__button ']").click()
    

    使用选择器时,直接从页面复制和粘贴总是一个很好的做法,这将在将来避免很多麻烦。