我知道之前已經問過這些問題的版本 - 這可能是重復 - 但我已經搜索了所有這些并且找不到可行的解決方案。
我正在嘗試從 air.norfolk.gov 網路抓取一些資料。開頭的免責宣告彈出視窗真的給我帶來了麻煩(我現在的整個目標就是擺脫開頭的彈出視窗,這樣我才能真正抓取資料!)。
這是我當前的代碼:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
import time
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.maximize_window()
driver.get('https://air.norfolk.gov')
time.sleep(5)
element_name = driver.find_element(By.TAG_NAME, 'button')
print("Element is visible? " str(element_name.is_displayed()))
driver.find_element(By.TAG_NAME, 'button').click()
print('button clicked')
time.sleep(5)
# Get search box element from webElement 'q' using Find Element
search_box = driver.find_element(By.ID, "primary_search")
search_box.send_keys("this would be where the address goes")
我已經嘗試了很多你會注意到的事情: 我已經嘗試檢查元素是否可見——它是。我嘗試添加等待以確保它已準備好接收我的點擊。我嘗試使用send_keys而不是click()因為它看起來像這個按鈕被包裹在div.
每次運行腳本時,我都會查看網站,但免責宣告并沒有消失。
我得到的錯誤是:
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <button type="button" class="btn primary-button">...</button> is not clickable at point (912, 317). Other element would receive the click: <div class="modal-body">...</div>
我只是不確定為什么元素無法接收點擊。
請幫忙!
謝謝
uj5u.com熱心網友回復:
有 5 個元素突出顯示了該button標簽。因此,找到元素 withtag-name不會按預期作業。
嘗試使用下面的 xpath 單擊I Understand.
//button[text()='I Understand']
嘗試使用以下代碼:
#Imports required for Explicit waits:
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver.get("https://air.norfolk.gov")
wait = WebDriverWait(driver,30)
wait.until(EC.element_to_be_clickable((By.XPATH,"//button[text()='I Understand']"))).click()
uj5u.com熱心網友回復:
你找到了錯誤的按鈕。您可以使用 CSS 標簽找到它:#btn-primary。
我建議你去那個網站打開 DevTools 用普通的 javascript 做測驗,你很快就會搞清楚
uj5u.com熱心網友回復:
如果免責宣告彈出視窗是警報,則可以按以下方式處理 -
driver.switchTo().alert().dismiss(); 或 driver.switchTo().alert().accept();
也嘗試使用 driver.getWindowHandles() 在視窗之間切換,然后單擊元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/358269.html
標籤:javascript html 硒 硒网络驱动程序 网页抓取
