我正在從多個網站獲取資料,我遇到了這個網站,上面有一個彈出視窗(見以下圖片)。我已經嘗試了多種方法,如檢查警報或獲得駕駛者的視窗,以便我可以切換到它并關閉它。我真的被卡住了,似乎找不到通過這個的方法。我已經看到了解決方案,但這些撥號與警報。有誰有辦法嗎?
uj5u.com熱心網友回復:
在Selenium中,你可以指定等待給定的元素,所以如果這是已知的彈出視窗,那么:
- 在這個彈出視窗中選擇元素
- 等待該元素。
- 等待該元素被檢測到 。
- 導航到交叉按鈕,并關閉彈出視窗 。
uj5u.com熱心網友回復:
我以幾種方式嘗試。所有的方法都成功了,因為我在driver.get('url')之后添加了time.sleep(10)。
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome(executable_path="path to chromedriver.exe")
driver.maximum_window()
driver.implicitly_wait(30)
driver.get("https://satellitenewsnetwork.com/")
time.sleep(10) # 如果這個被移除,下面的方法都不能作業。
wait = WebDriverWait(driver,30)
driver.switch_to.frame(driver.find_element_by_id("ml-webforms-opup-2207054")
# First:
closepopup = driver.find_element_by_xpath("//div[@class='mailerite-popup']/a")
print(closepopup.get_attribute("class")
closepopup.click()
# Second:
# popup = wait.until(EC.presence_of_element_located((By.XPATH,"//div[@class='mailerite-popup']")) #也試過用visibility_of_element_located。
# print(popup.get_attribute("class"))
# closepopup = driver.find_element_by_xpath("//div[@class='mailerite-popup']/a")
# print(closepopup.get_attribute("class"))
# closepopup.click()
# Third:
# closepopup = driver.find_element_by_xpath("//div[@class='mailerite-popup']/a")
# print(closepopup.get_attribute("class"))
# driver.execute_script("arguments[0].click();",closepopup)
#
# Fourth:
# closepopup = driver.find_element_by_xpath("//div[@class='mailerite-popup']/a")
# print(closepopup.get_attribute("class"))
# ActionChains(driver).move_to_element(closepopup).click().perform()
time.sleep(5)
driver.quit()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/318355.html
標籤:
上一篇:資訊。'chromedriver'可執行檔案需要在PATH中。請看https://sites.google.com/a/chromium.org/chromedriver/home
下一篇:如何驗證是否顯示了烤面包資訊?
