Как напрямую использовать функции ожидаемого состояния pyhon-selenium?

#python #selenium

#python #селен

Вопрос:

Для реализации python-selenium у вас есть ожидаемые условия, которые вы обычно используете в WebDriverWait конструкции:

 element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
  

Я хочу использовать это условие напрямую, без WebDriverWait . Но выполнение простого

 element = EC.presence_of_element_located((By.ID, "myDynamicElement"))
  

похоже, не работает. Итак, как это сделать / использовать?

Комментарии:

1. Почему не использовать driver.find_element_by_id("myDynamicElement") ?

2. Я использую это, но как сообщить selenium, что элемент должен быть visible или нет visible , Или clickable и т. Д.?

Ответ №1:

Затем вы можете захотеть создать пользовательский метод для запуска блока кода

 def try_bool(attempts = 10, duration = 0.2, interest = True)
  count = 0
  item_of_interest = null
  while item_of_interest == interest || count == attempts
    item_of_interest = interest
    time.sleep(duration)
    count  = 1

element = driver.find_element_by_id('locator')
try_bool(10,1,element.is_displayed())
  

Комментарии:

1. Здесь вы используете is_displayed() , чтобы проверить, соответствует ли состояние элемента условию presence_of_element_located ? Это правильно? Если да, есть ли у вас соответствие каждого элемента какому-либо атрибуту элемента? Или лучше проверить исходный код непосредственно на seleniumhq.github.io/selenium/docs/api/py/_modules/selenium /…