#iframe #selenium-chromedriver #popupwindow #zipcode #web-scraping-language
#iframe — фрейм #селен-хромовый преобразователь #popupwindow #почтовый индекс #web-scraping-language
Вопрос:
Я почти пробую каждый код, который связан с всплывающими окнами, используя язык программирования python coding и selenium, но ни один из них не является рабочей send.key("XXXXX")
командой в zip-коде. Потому что в основном они связаны iframe
с исходным кодом страницы, поэтому либо он обрабатывается с помощью window switch_to.frame()
, либо switch_to.window
. В моем случае iframe
на странице нет источника, и всплывающие окна не отправляют ключи с этим введенным почтовым индексом. Поэтому мне нужна помощь для обработки таких всплывающих окон python и программирования selenium для обработки всплывающих окон.
driver.switch_to.frame()
driver.switch_to.window()
driver.switch_to.alert()
browser.get('www.amazon.com')
browser.find_element_by_xpath("""//*[@id="nav-global-location-popover-link"]""").click()
browser.set_page_load_timeout(1000)
browser.switch_to.active_element()
browser.find_element_by_xpath('//*[@id="GLUXZipUpdateInput"]').send_keys("85224")
Ответ №1:
Вам нужно нажать на панель местоположения доставки и программно установить pin-код, как показано ниже
loc = str(driver.find_element_by_id("glow-ingress-line2").text).strip().replace(" ", "")
if loc == "India" in driver.page_source:
WebDriverWait(driver, 30).until(
EC.presence_of_element_located((By.ID, "nav-packard-glow-loc-icon")))
driver.find_element_by_id("nav-packard-glow-loc-icon").click()
WebDriverWait(driver, 30).until(
EC.presence_of_element_located((By.ID, "GLUXZipUpdateInput")))
driver.find_element_by_id("GLUXZipUpdateInput").send_keys(10001)
ActionChains(driver).send_keys(Keys.SHIFT, Keys.ENTER).perform()
WebDriverWait(driver, 30).until(
EC.presence_of_element_located((By.ID, "GLUXConfirmClose")))
driver.refresh()
Комментарии:
1. Пожалуйста, не публикуйте только код в качестве ответа, но также предоставьте объяснение того, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и качественны и с большей вероятностью привлекут голоса.