如何自动点击文本"Show more matches"?我的代码不起作用

How can I automatically click on the text "Show more matches"? My code doesn't work

有一个文本按钮,上面写着“显示更多匹配项”,用于向下滚动页面,因为没有更多的结果出来。我想自动按下它,但是我的代码有问题。你能帮帮我吗?

重要提示:它还不在此页面上,但很快就会有第二个按钮“显示更多会议”,因为我向下滚动并找到“显示更多会议”,然后在几个月内如果我向下更进一步,找到第二个按钮“显示更多匹配项”。在页面中还没有第二个按钮,但我想让它也按下那个按钮(这是同一个按钮,所以我认为它并不复杂)。

所以我想按2,也一样,同时按3

P.S:请求的目的和代码仅供个人学习使用,所以个人说教,无盈利。此问题和此代码不用于商业或 profit-making 目的。

driver.get("url")
driver.implicitly_wait(12)
wait = WebDriverWait(driver, 12)

try:
    wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "a[class^='event__more event__more--static']"))).click()   #because another element <div class="skOT skOT--ot"> obscures it

except Exception as ex:
    print('EX:', ex)

更新:在 driver.get 和 link 之前,有这个

torexe_linux = os.popen('/home/xxxxx/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US') 

profile = FirefoxProfile('/home/xxxx/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/Browser/TorBrowser/Data/Browser/profile.default')
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.socks', '127.0.0.1')
profile.set_preference('network.proxy.socks_port', 9050)
profile.set_preference("network.proxy.socks_remote_dns", False) #certi la tengono True
profile.update_preferences()

firefox_options = webdriver.FirefoxOptions()
firefox_options.binary_location = '/usr/bin/firefox' 

driver = webdriver.Firefox(
    firefox_profile=profile, options=firefox_options, 
    executable_path='/usr/bin/geckodriver')   
  1. 您需要关闭接受 cookies 面板。
  2. 显示更多按钮出现在页面底部,您需要将其滚动到视图才能单击它。
  3. 单击它后,您需要等待页面加载才能再次获取该元素,再次滚动到它并再次单击它。
    如下:
from selenium.webdriver.common.action_chains import ActionChains

driver.get("link")
driver.implicitly_wait(12)
wait = WebDriverWait(driver, 12)
actions = ActionChains(driver)

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "button#onetrust-accept-btn-handler"))).click()

while(driver.find_elements_by_css_selector('a.event__more.event__more--static')):
    show_more = driver.find_element_by_css_selector('a.event__more.event__more--static')
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    actions.move_to_element(show_more).perform()
    time.sleep(0.5)
    show_more = driver.find_element_by_css_selector('a.event__more.event__more--static')
    show_more.click()
    time.sleep(3)