указание локатора веб-драйвера в вызове функции - PullRequest
0 голосов
/ 23 мая 2018

Я искал предложение о том, как ждать нажатия на определенный элемент страницы, и нашел этот пост:

Явное ожидание в Python Selenium с объектной моделью страницы

Код, указанный в посте, был:

def _wait_and_click(self, locator, timeout):
    try:
        wait = WebDriverWait(self.driver, timeout)
        wait.until(expected_conditions.element_to_be_clickable((locator["by"], locator["value"]))).click()
    except TimeoutException:
        return False
    return True

Это похоже на то, что мне нужно, но как мне это назвать?Я попытался: _wait_and_click (self, (By.ID, 'next-button'), 60)

и получил следующую ошибку:

Traceback (most recent call last):
  File "testProject.py", line 65, in test002_new_project
    _wait_and_click(self, (By.ID,'next-button'), 60)
  File "testProject.py", line 23, in _wait_and_click
    wait.until(expected_conditions.element_to_be_clickable((locator["by"], locator["value"]))).click()
TypeError: tuple indices must be integers, not str

Так, как я должен вызывать функцию

1 Ответ

0 голосов
/ 23 мая 2018

Вы использовали кортеж () вместо dict ()

_wait_and_click({'by': By.ID, 'value': 'next-button'}, 60)
...