Скрипт работает в безголовом режиме, но не работает в безголовом режиме с ошибкой «Элемент не найден»Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Скрипт работает в безголовом режиме, но не работает в безголовом режиме с ошибкой «Элемент не найден»

Сообщение Anonymous »

Я использую SeleniumBase на Python для автоматизации взаимодействия на веб-странице. Мой сценарий отлично работает в режиме без заголовка, но когда я устанавливаю его в режим без заголовка (headless=True или headless2=True), он не может найти определенные элементы, в частности #card-lib-selectCompany-change, даже после нескольких попыток прокрутки. Вот соответствующая часть моего кода
из seleniumbase import SB

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

def scrape_servipag_service_reading(service_type, company, identifier):
result = None
with SB(uc=True, headless2=True) as sb:
try:
sb.set_window_size(1920, 1080)
url = f"https://portal.servipag.com/paymentexpress/category/{service_type}"
sb.uc_open_with_reconnect(url, 4)
sb.uc_gui_click_captcha()
sb.sleep(10)

# Scroll to find element
for _ in range(30):
sb.execute_script("window.scrollBy(0, 100);")
sb.sleep(0.2)
if sb.is_element_visible("#card-lib-selectCompany-change"):
break

sb.wait_for_element("#card-lib-selectCompany-change", timeout=100)
sb.select_option_by_text("#card-lib-selectCompany-change", company)
# More interactions follow...

except Exception as e:
print(f"Error: {e}")
return result
Когда я запускаю этот код в автономном режиме, он находит #card-lib-selectCompany-change и взаимодействует с ним без каких-либо проблем. Однако в безгласном режиме я получаю сообщение об ошибке:

Элемент #card-lib-selectCompany-change no se encontró después de
различных намерений desplazamiento.

Чтобы решить эту проблему в безголовом режиме, я попробовал следующее:
  • Настройка пользовательского агента.
  • Явная установка размера области просмотра 1920x1080.
  • Добавление большего количества попыток прокрутки и интервалов ожидания. li>
  • Переключение между headless=True и headless2=True.
Я добавил оператор печати в безголовом режиме (headless=True ), и он вернул результат, который выглядит так, как будто он никогда не загружал нужную страницу. Вот вывод URL-адреса и источника страницы:

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

 print("Current URL:", sb.get_current_url())
print("Page Source:", sb.get_page_source())
URL-адрес и источник страницы показывают контент, не связанный с целевой страницей:

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

 Current URL:
chrome-extension://neajdppkdcdipfabeoofebfddakdcjhd/audio.html
Page Source:     
Кто-нибудь сталкивался с чем-то подобным или знает, как обеспечить полную загрузку страницы в безголовом режиме?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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