Python, Selenium Web Scraping: проблема с всплывающим окном с первой веб-страницы на вторую веб-страницуPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python, Selenium Web Scraping: проблема с всплывающим окном с первой веб-страницы на вторую веб-страницу

Сообщение Anonymous »

введите код Эта проблема беспокоит меня уже несколько дней, и я не смог найти подходящего решения. В настоящее время я использую Python и Selenium для парсинга веб-страниц. После нажатия кнопки на первом веб-сайте открывается второй веб-сайт, что вызывает всплывающее окно с предупреждением. Однако, несмотря на то, что я попробовал множество методов, мне не удалось захватить всплывающее окно с предупреждением и продолжить последующие автоматические операции. Если я использую клавиатуру.press(Key.enter), другие операции могут помешать. Хотелось бы узнать, сталкивался ли кто-нибудь с подобной ситуацией и может ли предложить решение. Это момент, когда процесс каждый раз останавливается, чтобы проверить или найти окно предупреждения. Смоделированная ситуация на веб-сайте показана в HTML ниже и на Python. Большое спасибо.

Код: Выделить всё




upload picture


Open new window

Uploaded images will appear below:




let uploadCount = 0;

document.getElementById('openWindow').onclick = function() {
const newWindow = window.open('upload.html', 'Upload Image', 'width=500,height=500');
newWindow.focus();
};

window.addEventListener('message', function(event) {
if (event.origin !== window.location.origin) {
alert('Data from unknown sources!');
return;
}
uploadCount++;
const imageURL = event.data;
if (uploadCount === 1) {
document.getElementById('uploadedImage1').src = imageURL;
} else if (uploadCount === 2) {
document.getElementById('uploadedImage2').src = imageURL;
}
});




Код: Выделить всё




upload picture2

window.onload = function() {
alert('Please select a picture and upload it!');
};




upload

document.getElementById('uploadButton').onclick = function() {
const fileInput = document.getElementById('fileInput');
if (fileInput.files.length === 0) {
alert('Please select a profile!');
return;
}
const file = fileInput.files[0];
const reader = new FileReader();
reader.onload = function(e) {
window.opener.postMessage(e.target.result, window.opener.location.origin);
window.close();
};
reader.readAsDataURL(file);
};




Код: Выделить всё

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

service = Service('/usr/local/bin/chromedriver')
options = Options()
options.add_experimental_option('detach', True)

driver = webdriver.Chrome(service=service, options=options)

driver.get('http://127.0.0.1:5500/index.html')

open_window_button = driver.find_element(By.ID, 'openWindow')
open_window_button.click()

time.sleep(2)
print('sleep is over.')
# This is the point where the process stops each time to check or look for the alert window.

file_input = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, 'fileInput')))
file_path = ''
file_input.send_keys(file_path)

upload_button = driver.find_element(By.ID, 'uploadButton')
upload_button.click()
Помимо методов, описанных в официальной документации,
обновите страницу после входа на второй веб-сайт, чтобы повторно захватить текущее окно, увеличьте время ожидания для захвата содержимого всплывающего окна и переключитесь вернемся к главному окну выполнения...
Пока ни один из этих методов не может захватить новое окно и всплывающее окно с предупреждением. Если я вручную взаимодействую с оповещением во время процесса автоматизации, только тогда я смогу записать новую страницу браузера.

Подробнее здесь: https://stackoverflow.com/questions/785 ... the-second
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Связь между родительским окном и всплывающим окном с разными доменами
    Anonymous » » в форуме Jquery
    0 Ответы
    65 Просмотры
    Последнее сообщение Anonymous
  • Selenium (Java) – невозможно управлять всплывающим окном.
    Гость » » в форуме JAVA
    0 Ответы
    41 Просмотры
    Последнее сообщение Гость
  • Selenium (Java) – невозможно управлять всплывающим окном.
    Гость » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Гость
  • Html-таблица с модальным всплывающим окном
    Anonymous » » в форуме Php
    0 Ответы
    49 Просмотры
    Последнее сообщение Anonymous
  • Создание функции проверки орфографии с подчеркиванием и всплывающим окном в текстовой области с использованием чистого H
    Гость » » в форуме CSS
    0 Ответы
    56 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»