Перейти к основному содержимому
Возникают проблемы с получением токена?
Свяжитесь с поддержкой

Известные проблемы

store.steampowered.com

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

Ошибка 'Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'click')'

Если при решении капчи методом кликов (ComplexImageTask) через расширение CapMonster Cloud возникает ошибка 'Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'click')', как показано на скриншоте, рекомендуется установить значение 'Задержка между кликами' в расширении — это может помочь решить проблему.

Расширение не реагирует на Cloudflare Turnstile

Доступ к websiteKey через Shadow DOM

Иногда ключ капчи (websiteKey) скрыт внутри shadow-root с режимом closed.
Например, в iframe с адресом:
https://challenges.cloudflare.com/cdn-cgi/challenge-platform/h/g/turnstile/if/.../0x4AAAAAAA1a2345abc-/auto/...

Ключ websiteKey в этом случае равен 0x4AAAAAAA1a2345abc.

Если расширение успеет загрузиться раньше, чем данный iframe, можно сделать shadowRoot открытым и извлечь websiteKey.
Если же iframe уже загружен — получить ключ будет невозможно.

В качестве альтернативы расширению для тестирования и отладки можно использовать Selenium (или другие headless-браузеры), а при необходимости — запускать его вместе с расширением.


Пример: открытие shadowRoot через Selenium

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# Настройка WebDriver
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=options)

# Открытие страницы
driver.get("https://example.com")

# Встраивание JavaScript для открытия ShadowRoot
inject_script = """
const originalAttachShadow = Element.prototype.attachShadow;
Element.prototype.attachShadow = function(...args) {
if (args[0] && args[0].mode === 'closed') {
args[0].mode = 'open';
}
const shadowRoot = originalAttachShadow.apply(this, args);
return shadowRoot;
};
console.log('ShadowRoot mode changed to open.');
"""
driver.execute_script(inject_script)

# Даем время странице прогрузиться
time.sleep(3)

# Пример взаимодействия с теневым DOM после изменения attachShadow
shadow_host = driver.find_element(By.CSS_SELECTOR, "shadow-host-selector") # Укажите реальный селектор
shadow_root = driver.execute_script("return arguments[0].shadowRoot", shadow_host)

# Взаимодействие с элементами в теневом DOM
button = shadow_root.find_element(By.CSS_SELECTOR, "button")
button.click()

# Закрытие браузера
driver.quit()

Чтобы использовать Selenium совместно с расширением, подключите расширение при запуске браузера:

options = webdriver.ChromeOptions()
options.add_extension('your_extension.crx') # путь к расширению
driver = webdriver.Chrome(options=options)

О том, как скачать crx-файл, вы можете узнать здесь.