Python在调用之前执行命令(一般问题)

时间:2019-02-27 09:22:46

标签: python selenium

编辑:很抱歉,但是我认为这与链接将我定向到的问题不同。我再试一次。我的问题如下:

我有一个名为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>

希望现在更加清楚。非常感谢!

0 个答案:

没有答案