Почему я не могу найти элементы на странице, использующие поведение-django? - PullRequest
0 голосов
/ 30 октября 2019

Я просто пытаюсь создать свой первый поведенческий тест, чтобы найти ссылку на странице, чтобы я мог щелкнуть по ней.

Я пробовал это с драйверами Chrome и Firefox, но продолжаю получатьследующая ошибка, когда я пытаюсь:

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: Cookie Policy

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

Настройка драйвера выглядит следующим образом: environment.py:

def before_scenario(context, feature):
    context.browser = webdriver.Firefox()
    context.browser.implicitly_wait(10)

Шаг ошибки:

@when('I click on "{link_text}"')
def i_click_on(context, link_text):
    link = context.browser.find_element_by_link_text(link_text)
    link.click()

Сценарий выглядит следующим образом:

    Scenario: Navigate to cookie policy
        Given I am on the homepage
        When I click on "Cookie Policy"

Соответствующая часть просматриваемого HTML-кода:

            <a href="/terms">Terms and Conditions</a>,
            <a href="/privacy">Privacy Policy</a>,
            <a href="/research-policy">Research Policy and Consent</a>,
            and <a href="/cookie-statement">Cookie Policy</a>

В результате возникает ошибка:

/Users/olorton/.local/share/virtualenvs/ogg-django-7ceMMn7K/bin/python /Applications/PyCharm.app/Contents/helpers/pycharm/behave_runner.py -t wip --stop --no-skipped --format progress
manage.py behave -fcom.jetbrains.pycharm.formatter /Users/olorton/Code/ogg-django/features -t wip --stop --no-skipped --format progress -n 
Creating test database for alias 'default'...
features/basic_user_flow.feature  
Traceback (most recent call last):
  File "/Users/olorton/.local/share/virtualenvs/ogg-django-7ceMMn7K/lib/python3.7/site-packages/behave/model.py", line 1329, in run
    match.run(runner.context)
  File "/Users/olorton/.local/share/virtualenvs/ogg-django-7ceMMn7K/lib/python3.7/site-packages/behave/matchers.py", line 98, in run
    self.func(context, *args, **kwargs)
  File "features/steps/main_steps.py", line 39, in i_click_on
    link = context.browser.find_element_by_link_text(link_text)
  File "/Users/olorton/.local/share/virtualenvs/ogg-django-7ceMMn7K/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 428, in find_element_by_link_text
    return self.find_element(by=By.LINK_TEXT, value=link_text)
  File "/Users/olorton/.local/share/virtualenvs/ogg-django-7ceMMn7K/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
    'value': value})['value']
  File "/Users/olorton/.local/share/virtualenvs/ogg-django-7ceMMn7K/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/Users/olorton/.local/share/virtualenvs/ogg-django-7ceMMn7K/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: Cookie Policy

Я что-то упустил?

...