gpt4 book ai didi

python - 如何使用 selenium ChromeDriver 滚动 Google map 上的侧边栏以加载更多结果?

转载 作者:行者123 更新时间:2023-12-05 06:00:16 26 4
gpt4 key购买 nike

我在尝试使用 Selenium ChromeDriver 向下滚动谷歌地图结果页面的侧边栏时遇到了问题。我试图获得第 6 个结果,但在您向下滚动之前结果不会完全加载。使用 find_element_by_xpath 方法,我能够成功访问结果 1-5 并分别单击它们,但是在尝试使用 actions.move_to_element(link).perform() 滚动到第 6 个元素的方法,它不起作用并抛出错误消息。

我得到的错误是:selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:

但是,我知道这个元素存在,因为当我手动滚动并加载更多结果时,Xpath 工作正常。我究竟做错了什么?我花了很多时间试图解决这个问题,但我无法解决可用的内容。感谢您提供的任何帮助或见解,谢谢!

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup as soup
import time

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("https://www.google.com/maps")
time.sleep(7)
page = soup(driver.page_source, 'html.parser')

#find the searchbar, enter search, and hit return
search = driver.find_element_by_id('searchboxinput')
search.send_keys("dentists in Austin Texas")
search.send_keys(Keys.RETURN)
driver.maximize_window()

time.sleep(7)

#I want to get the 6th result down but it requires a sidebar scroll to load
link = driver.find_element_by_xpath("//*[@id='pane']/div/div[1]/div/div/div[4]/div[1]/div[13]/div/a")

actions.move_to_element(link).perform()

link.click()

time.sleep(5)

driver.back()```

最佳答案

我找到了一个有效的解决方案,它是从 selenium 的 javascript 接口(interface)中定位 XPATH 中的元素。然后,您必须在一条指令上执行两个命令(定位和滚动)

driver.executeScript("var el = document.evaluate('/html/body/jsl/div[3]/div[10]/div[8]/div/div[1]/div/div/div[4]/div[1]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; el.scroll(0, 5000);");

这是唯一对我有用的解决方案

关于python - 如何使用 selenium ChromeDriver 滚动 Google map 上的侧边栏以加载更多结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67783868/

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