Как найти элемент Create an Account в https://www.shopdisney.com/ с помощью Selenium и Python - PullRequest
1 голос
/ 14 июля 2020

Я пытался нажать кнопку «Создать учетную запись» на этой веб-странице с использованием селена и python, но python не может найти элемент. Вот мой текущий код:

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://www.shopdisney.com/merch-pass/product-selection/arendelle-castle-collection-from-frozen")
time.sleep(12)
accountcreate = driver.find_element_by_class_name ('btn-group btn-group-create-account ng-scope')
accountcreate.click()

Каждый раз, когда я запускаю его, chrome открывается на веб-страницу, но не нажимает кнопку, и я получаю такой ответ:

  File "skit.py", line 8, in <module>
    link = driver.find_element_by_class_name ('btn-group btn-group-create-account ng-scope')
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 564, in find_element_by_class_name
    return self.find_element(by=By.CLASS_NAME, value=name)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".btn-group btn-group-create-account ng-scope"}
  (Session info: chrome=83.0.4103.97)

Я пытался использовать разные методы для идентификации элемента, например XPath, css и др., Но мне все еще не удается найти его и щелкнуть по нему. Я считаю, что это как-то связано с iframe, но я не совсем уверен. Есть у кого-нибудь идеи, как это решить?

Спасибо!

1 Ответ

0 голосов
/ 14 июля 2020

Ссылка с текстом Create an Account находится внутри <iframe>, поэтому вам необходимо:

Завести аккаунт

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