如何使用Python和SeleniumBase/Selenium滚动到动态加载列表中的特定元素<ul>?

问题描述 投票:0回答:1

我有一个包含超过 50 个列表项的无序列表元素

  • ,但最初只加载前 10 个。我需要使用 SeleniumBase 滚动,但如果您知道它如何使用 selenium 工作,它也许也可以帮助我,当该项目最初未加载时滚动到第 45 项。例如我的 XPath 是 (//ul[@title="test"]//li[@title='45']) 但我找不到它,因为它最初没有加载。 如何滚动到该项目并确保在与其交互之前已加载它?

    我尝试滚动到第 10 个

  • ,但列表仍然没有加载下一个项目。 我尝试滚动到使用scroll_to_bottom 的末尾,但它滚动到页面的末尾而不是列表元素的末尾。

    如有任何帮助,我们将不胜感激!

  • python selenium-webdriver automation html-lists seleniumbase
    1个回答
    0
    投票
    import selenium
    from bs4 import BeautifulSoup
    from selenium.webdriver.common.keys import Keys
    
    def existOrNot(Xpath):
        page =driver.page_source
        soup = BeautifulSoup(page, "html.parser")
        if soup.find(Xpath):
            return(True)
        else: 
            return (False)
    
    
    Xpath= soup.find("ul", title='test').find("li",title='45')
    while not existOrNot(Xpath):
       driver.send_keys(Keys.END)
        time.sleep(3)
    
    © www.soinside.com 2019 - 2024. All rights reserved.