Поскольку вы хотите вызвать click()
для элемента вместо использования is_displayed()
или , ожидающих, пока элемент будет видимым , вам нужно вызвать WebDriverWait для желаемого . ] должен быть активным , и вы можете использовать следующее решение:
try:
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.NAME, "commit"))).click()
print("Added to cart")
except(TimeoutException):
return("Error while adding to cart")
Примечание : Вы должны добавить следующие импорты:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
Я встретился с той же проблемой. Следующие шаги решили проблему для нас, она могла бы также работать на Вас:
Я не знаю то, что вызвало проблему.
Возможно, Вы сняли флажок с флажком 'Embedded designer'? (Инструменты | Опции | Опции Среды | Разработчик VCL). Затем действительно, Ваш кадр показывают во время проектирования как форма (с подписью, граница и т.д.). Также конкретный код Вашего проблематичного потомка TFrame или большего количества деталей о Вашем случае помог бы.
Насколько я знаю, у Вас должны быть и форма и кадр, открытый в редакторе при редактировании кадра. Еще могут быть проблемы обновления. Хотя я не видел этого.
Но я разочаровался в кадрах давным-давно, потому что я не нашел их очень надежными.
Прямо сейчас я только использую их для разработки прототипа, создавая пользовательский компонент (полученный панели с соответствующими средствами управления на нем).
Вам, вероятно, придется зарегистрировать пользовательский модуль к IDE, Но Ваши дополнительные свойства не будут работать хорошо, если они не будут в классе предка.
Я столкнулся со многими проблемами с TFrame и, наконец, пришел к такому обходному пути, который решает все мои проблемы: Я создаю и проектирую кадры визуально, но использую их только для ручного кодирования.
В качестве побочного эффекта мои приложения стали меньше из-за меньшего количества dfm-s.
.