РЕДАКТИРОВАТЬ: Я извиняюсь, но я считаю, что это не тот вопрос, на который меня направляют ссылки.Я попробую это снова.Моя проблема заключается в следующем:
У меня есть файл с именем webElements.py, в котором я определил множество переменных, содержащих команды selenium find_element_by_blabla ().Например:
class CwebElements:
someBeingBuilt = (logInFile.browser.find_element_by_xpath("//*
[@name='zeit']"))
Я использую эти переменные в другом файле, основной код, например:
if webElements.CwebElements.someBeingBuilt:
print('Busy!')
Пока все хорошо.Но когда я теперь выполняю основной файл, я сразу же получаю следующую ошибку (в самом начале кода, даже до того, как он попадет на страницу, где он должен искать этот элемент):
"... нет такого элемента: невозможно найти элемент: {"method": "xpath", "selector": "// * [@ name = 'zeit']"} "
Iпопытался использовать лямбду следующим образом:
class CwebElements:
someBeingBuilt = lambda: (logInFile.browser.find_element_by_xpath("//*
[@name='zeit']"))
но когда я это сделаю, программа будет работать до тех пор, пока не достигнет страницы, где он должен искать этот элемент «Zeit», и всегда будет печатать «Busy!».Кроме того, когда я пишу это так:
if logInFile.browser.find_element_by_xpath("//*
[@name='zeit']"):
print('Busy!')
это на самом деле работает, так что дело не в неправильном кодировании (я полагаю), а в проблеме Python, желающей выполнить команды Selenium, хранящиеся в переменных, вернов начале, а не только тогда, когда они нужны.
Надеюсь, теперь все стало понятнее.Большое спасибо !!