元素在尝试使用Selenium访问弹出窗口时不可交互

2024-03-28 14:57:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试抓取以下网站:https://www.nemlig.com/但这并不像我以前习惯的那么简单,因为我试图删除的页面不是静态的。我尝试使用Selenium来做的是单击以下内容:

enter image description here

因此zipcode弹出窗口可见。然后,插入一个数字并按enter键。在

这是我的看法:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

browser = webdriver.Chrome(executable_path=r"C:\Users\user\lib\chromedriver_77.0.3865.40.exe")
browser.get('https://www.nemlig.com/')

elem = browser.find_element_by_xpath("//div[@class='timeslot-statusbutton']")
elem.clear()
elem = browser.find_element_by_xpath("//input[@class='prompt__input ng-pristine ng-valid ng-empty ng-touched']")
elem.send_keys("2300")
elem.send_keys(Keys.RETURN)

但是browser.get之后的所有内容都返回以下错误:

Traceback (most recent call last):

File "", line 8, in elem = browser.find_element_by_xpath("//div[@class='timeslot-statusbutton']").click()

File "D:\Anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click self._execute(Command.CLICK_ELEMENT)

File "D:\Anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute return self._parent.execute(command, params)

File "D:\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response)

File "D:\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace)

ElementNotInteractableException: element not interactable (Session info: chrome=77.0.3865.90)

我怎样才能做得好呢?在


Tags: inbrowserbylibpackagesseleniumlinesite
1条回答
网友
1楼 · 发布于 2024-03-28 14:57:11

您可以尝试以下代码:

driver = webdriver.Chrome(executable_path = r'C:/Users/***/Downloads/BrowserDriver/chromedriver_win32/chromedriver.exe')
wait = WebDriverWait(driver,10)

driver.maximize_window()

driver.get("https://www.nemlig.com/")

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".timeslot-prompt.initial-animation-done")))

wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[type='tel'][class^='pro']"))).send_keys('ABC')  

wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".btn.prompt__button"))).click()  

进口将是:

^{pr2}$

相关问题 更多 >