Не удается закрыть всплывающее окно с рекламой в браузере с помощью Selenium, и это убивает мою автоматизацию - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь собрать информацию с этого веб-сайта. Singapore Streetdirectory , он похож на Google Map, но локализован только для Сингапура. Поэтому мне нужно ввести почтовый индекс в строку поиска, щелкнуть поиск и очистить адрес улицы. У меня есть более тысячи почтовых индексов для обработки.

Раздражает то, что при запуске этой веб-страницы всегда будет всплывающее окно с рекламой в браузере. Я попытался закрыть его с помощью Selenium, используя следующий код, и он не работает:

close_ad = driver.find_element_by_id('btn_close')
close_ad.click()

Я хотел закрыть с помощью xpath и найти их 'href', но href, похоже, немного java код, и он также, кажется, не работает.

Я хотел бы спросить, есть ли какие-либо решения по этому или обходного пути? Конечный план - запускать эти коды в режиме безголового браузера. Ниже приведен мой полный код для справки, если необходимо

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

options = Options()
options.headless = True
driver = webdriver.Chrome(executable_path='/Applications/chromedriver') # , options=options

driver.get('https://www.streetdirectory.com/')
driver.set_window_position(0,23)
print(driver.title)

time.sleep(3)

close_ad = driver.find_element_by_id('a.btn_close')
close_ad.click()

Спасибо за помощь.

1 Ответ

0 голосов
/ 23 января 2020

Вы можете использовать безголовый также со следующим

driver.get ("https://www.streetdirectory.com/") html_content = BeautifulSoup (driver.page_source, 'l xml') print (html_content )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...