обнаружить, что javascript хочет открыть новую вкладку и заставить веб-страницу открывать новый URL в той же вкладке (или, по крайней мере, перехватить URL) - PullRequest
0 голосов
/ 17 января 2020

Я хотел бы определить, когда некоторые javascript хотят открыть новую вкладку, чтобы я мог заставить ее открыть ее в текущей вкладке или, по крайней мере, получить URL-адрес для загрузки ее в моей текущей вкладке.

Я НЕ говорю об удалении атрибута target="_blank", поскольку у меня нет проблем с обработкой этого случая.

контекст: причина, по которой я хочу это сделать, заключается в том, что в некоторых случаях, когда Я запускаю селен в безголовом режиме на своем сервере Ubuntu, переключая вкладку с помощью driver.switch_to, запускается неограниченное время, в конечном итоге ничего не получая (что, по-видимому, хорошо известная ошибка).

по этой причине было бы фантастически c, если бы я мог сделать одну из следующих двух вещей:

  • перехватить URL-адрес вкладки, из которой открывается мое главное окно javascript

или альтернативно:

  • получить URL-адрес вкладки, с которой я не работаю в Selenium, но без вызова метода switch_to.

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

EDIT , так как некоторые комментарии приводят к настройке моего веб-драйвера Selenium, вот он:

chrome_options = OptionsChrome()
chrome_options.add_experimental_option("prefs", {
   "download.default_directory": download_directory,
})
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(
  executable_path=path_to_driver,
  chrome_options=chrome_options
)
params = {'behavior': 'allow', 'downloadPath': download_directory}
driver.execute_cdp_cmd('Page.setDownloadBehavior', params)

Я использую ChromeDriver 79.0.3945.16, Google Chrome 79.0.3945.130, Selenium 3.141.0 на Ubuntu 18.04. Возможно, стоит отметить, что он прекрасно работает для загрузки pdf при нажатии на ссылку со ссылкой на pdf (но не в том случае, если .pdf вызывается некоторыми javascript).

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