Ожидаемые условия периодически терпят неудачу с ошибкой: TypeError: find_element () принимает от 1 до 2 позиционных аргументов, но было дано 3 - PullRequest
0 голосов
/ 06 июля 2019

У меня странная проблема с Selenium, и я искал небольшую помощь. Я использую ожидаемые условия для проверки наличия элемента.

Проблема в том, что иногда это работает хорошо, но иногда выдает следующую ошибку:

File "selenium_func_call.py", line 327, in is_element_clickable
  WebDriverWait(self.driver, 10).until(element)
File "python3.5/site-packages/selenium/webdriver/support/wait.py", line 71, in until
  value = method(self._driver)
File "python3.5/site-packages/selenium/webdriver/support/expected_conditions.py", line 318, in __call__
  element = visibility_of_element_located(self.locator)(driver)
File "python3.5/site-packages/selenium/webdriver/support/expected_conditions.py", line 139, in __call__
  return _element_if_visible(_find_element(driver, self.locator))
File "python3.5/site-packages/selenium/webdriver/support/expected_conditions.py", line 440, in _find_element
  return driver.find_element(*by)
TypeError: find_element() takes from 1 to 2 positional arguments but 3 were given

Мой вызов element_to_be_clickable () правильный. Я передаю кортеж. Я полагал, что это была длина моего xpath или что-то, но это ни к чему не привело. Я добавил несколько трассировок к Ожидаемому_условию, чтобы проверить, правильно ли я передаю аргументы.

вызов ожидаемых условий

element = EC.element_to_be_clickable((By.XPATH, element_xpath))
WebDriverWait(self.driver, 10).until(element)

Вывод из ожидаемого_условия.py

Это работает:

внутри _find_element

by = ('xpath', "// span [содержит (текст (), 'УСЛУГИ')] /../../ ..")

Это не так:

внутри _find_element

by = ('xpath', "// div [text () = 'STORAGE'] /../ div [2] / div [содержит (@class, 'ls-add-icon')]")

внутри _find_element

by = ('xpath', "// input [@name = 'id' and @value = 'Mint_Choco_Chip'] /../../../../../ div / div / div [text () = 'STORAGE'] /../ div [2] / div [содержит (@class, 'ls-add-icon')] ")

Любой совет о том, что я делаю неправильно, был бы прекрасен

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