编辑:很抱歉,但是我认为这与链接将我定向到的问题不同。我再试一次。我的问题如下:
我有一个名为webElements.py的文件,其中定义了许多包含硒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']“}”
我尝试如下使用lambda:
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命令的问题。< / p>
希望现在更加清楚。非常感谢!