我正在嘗試從該網站獲取餐廳的名稱和地址:[ https://www.kravekar.com/restaurants][webPage]
問題是每次我回傳主頁時,都會收到此錯誤:
Element <div >...</div> is not clickable at point (1129, 435). Other element would receive the click: <i ></i>
我試圖實作驅動程式重繪 ,一次睡眠但不作業。我在第三次迭代中遇到了同樣的錯誤。
到目前為止,這是我的可重現代碼:
driver.get('https://www.kravekar.com/restaurants')
comment_button = driver.find_elements(by =By.CSS_SELECTOR, value = "div.restaurant-card")
result = []
for btn in comment_button :
btn.click()
try:
name = driver.find_element(by=By.XPATH, value = '//*.
[@id="restaurant_menu_head"]/div/div/div[2]/div[1]/div/div/h4')
name = name.text
print(name)
address = driver.find_element(by = By.XPATH, value = '//*
[@id="restaurant_menu_head"]/div/div/div[2]/div[1]/div/div/div/span')
address = address.text
print(address)
except:
print("No address or name")
driver.execute_script("window.history.go(-1)")
uj5u.com熱心網友回復:
當您這樣做時,btn.click()或者driver.execute_script("window.history.go(-1)")可能會丟失對正確網頁的參考。所以最好直接從主頁存盤所有餐館的 url,然后回圈存盤的 url。
driver.get('https://www.kravekar.com/restaurants')
cards = driver.find_elements(By.CSS_SELECTOR, ".restaurant-card-wrapper")
urls = [card.get_attribute('href') for card in cards]
names = [card.find_element(By.CSS_SELECTOR, ".restaurant-card-title").text for card in cards]
for idx,url in enumerate(urls):
try:
driver.get(url)
# name = driver.find_element(By.CSS_SELECTOR, "#tab_menu_info h4.media-heading").text
print(names[idx])
address = driver.find_element(By.CSS_SELECTOR, "#tab_menu_info .restaurant_menu_info-addresss").text
print(address)
except:
print("No address or name")
哪個輸出
Arby's
51171 Highway 6 & 24, Glenwood Springs, CO 81601
Springs Bar and Grill
722 Grand Ave, Glenwood Springs, CO 81601
etc.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/473983.html
