#html #css #excel #vba #internet-explorer
#HTML #css #excel #vba #internet-explorer
Вопрос:
Я просматриваю этот защищенный паролем веб-сайт и добираюсь до точки, где он открывает то, что выглядит как дочернее окно, но имеет URL, подобный "http://yadayadayada**.pdf**?V42"
.
Хотя это PDF, я могу вручную щелкнуть по нему, чтобы выбрать и скопировать данные.
Моя проблема заключается в настройке фокуса на нее с помощью кода.
Я пробовал несколько вариантов перебора URL-адресов открытых страниц, но он не идентифицируется, и я не могу установить фокус на этот.
Если все остальное не удается, я могу сохранить его как PDF, открыть его через Adobe и очистить его оттуда.
Ответ №1:
Я не уверен, что я действительно понимаю, чего вы хотите. Следующий код проверяет каждое открытое приложение, является ли оно Internet Explorer, и если да, имеет ли оно правильный URL-адрес в качестве местоположения. Больше информации в комментариях.
Важно: нет необходимости активировать вкладку для очистки данных из нее. Я также не знаю, как вывести вкладку на передний план в IE. Почему-то никто не знает 😉
Sub ScrapeFromTabs()
Dim allShell As Object
Dim oneWindow As Object
Set allShell = CreateObject("Shell.Application")
'Go through all open windows
'Each tab in IE is treated as a window by the OS.
For Each oneWindow In allShell.Windows
'Check if it is a window of the Internet Explorer
If InStr(1, UCase(oneWindow.FullName), "IEXPLORE") > 0 Then
'Check whether the relevant parts are present in the URL
If InStr(1, oneWindow.locationURL, "yadayadayada") > 0 And InStr(1, oneWindow.locationURL, ".pdf") > 0 Then
'Do here what you want with the pdf
'Whatever is possible with a pdf ... somthing like this
'set nodeHeadline = oneWindow.getElementsByTagName("h1")(0)
'It was the right tab with the pdf
'Leave the loop
Exit For
End If
End If
Next oneWindow
End Sub
Комментарии:
1. Ну, предоставленный вами код все еще не смог сделать то, что я хотел, со страницей, которая была просто скопирована / вставлена. Копирование / вставка всегда по умолчанию выполняется на исходной вкладке, а не на вновь открытой. Однако он определил URL нужной мне страницы, чтобы я мог сохранить / повторно открыть / скопировать / вставить и получить то, что мне нужно. Опубликована общая строка кода (Dim objShell, IE_count, x, my_url, дочерняя страница), которую я пробовал, но не дал мне URL. У вас есть. Очень странно, как это работает, потому что я могу вручную щелкнуть страницу и выполнить копирование / вставку. В любом случае, я, безусловно, могу использовать это, так что, спасибо.
2. Еще раз просмотрел ваш ответ, Zwenn, и да, мне не нужно было активировать страницу, чтобы удалить с нее данные. С моей исходной вкладки я открываю 2-ю вкладку, которая является страницей pdf, и похоже, что она находится в фокусе, но Ctrl-a или IE.execWB 17,0 выбирает все из исходной вкладки, а не ту, которая только что открылась. Очень странно