关闭使用Selenium的网站的弹出窗口



所以我试图从网站上抓取一些信息,却无法通过弹出窗口。我已经尝试使用X按钮的简短和完整的Xpath,但它不关闭。

这是我的代码

# import 
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
driver = webdriver.Chrome(executable_path = 'mypath/chromedriver.exe') 
driver.get('https://ai.fmcsa.dot.gov/SMS')
driver.find_Element_By_xpath('//*[@id="simplemodal-container"]/a').click();

代码打开了网站,但没有关闭弹出窗口。问题是什么呢?

您的自动化脚本需要一个显式的等待,下面的xpath:-

//a[@title='Close']

代码:-

driver = webdriver.Chrome(executable_path = 'mypath/chromedriver.exe') 
driver.maximize_window()
#driver.implicitly_wait(50)
driver.get("https://ai.fmcsa.dot.gov/SMS")
wait = WebDriverWait(driver, 20)
wait.until(EC.element_to_be_clickable((By.XPATH, "//a[@title='Close']"))).click()

进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

如果你想按原样使用你的代码:

# import 
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
driver = webdriver.Chrome(executable_path = 'mypath/chromedriver.exe') 
driver.get('https://ai.fmcsa.dot.gov/SMS')
driver.find_Element_By_xpath('/html[1]/body[1]/div[7]/a[1]').click();

这对我有效,并关闭了弹出窗口。

最新更新