gpt4 book ai didi

javascript - 如何在延迟加载网页上单击 'Show More' 按钮

转载 作者:行者123 更新时间:2023-11-30 19:17:18 26 4
gpt4 key购买 nike

我正在尝试单击网页上的“显示更多”按钮。我编写了这段代码,但在代码下方出现错误。

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

#Open Chrome
driver=webdriver.Chrome(executable_path="C:/Users/chromedriver.exe")

web="https://www.expedia.com/Hotel-Search?adults=1&destination=Montreal%2C%20Quebec%2C%20Canada&endDate=2019-09-16&latLong=45.50195%2C-73.56714&localDateFormat=M%2Fd%2Fyyyy&regionId=178288&sort=recommended&startDate=2019-09-15&useRewards=true"
driver.get(web)
driver.maximize_window()

#parse html
html =driver.page_source
soup=BeautifulSoup(html,"html.parser")
time.sleep(5)
WebDriverWait(driver, 5)

#click show more
show_more=driver.find_element_by_link_text('Show More')
#Another element is covering the element you are to click.
driver.execute_script("arguments[0].click();", show_more)

错误:

NoSuchElementException: Message: no such element: Unable to locate element: {"method":"link text","selector":"Show More"}

起初,我没有包括最后一行 (execute_script...),但我认为如果我包括该行但仍然相同,它会起作用。

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

一个额外的问题是,有没有办法多次点击“显示更多”按钮?因为我注意到我必须多次点击才能查找所有酒店列表。

最佳答案

我会简单地使用下面的 css。

button[data-stid='show-more-results']

脚本:

# scroll to the element before clicking
driver.find_element_by_css_selector("button[data-stid='show-more-results']").location_once_scrolled_into_view
# click on the show more button
driver.find_element_by_css_selector("button[data-stid='show-more-results']").click()

截图: enter image description here

关于javascript - 如何在延迟加载网页上单击 'Show More' 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57848298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com