Python 自定义元素的执行速度较慢

Python 自定义元素的执行速度较慢,python,selenium,selenium-rc,Python,Selenium,Selenium Rc,我在另一个方法的方法体中: for i in range(60): try: if sel.is_element_present("//div[@id='result']/form[3]/strong/div/button"): break except: pass time.sleep(1) 它在5秒内执行 现场无任何变化,我执行以下命令: self.WaitForElement(u"//div[@id='result']/form[3]/strong

我在另一个方法的方法体中:

for i in range(60):
    try:
        if sel.is_element_present("//div[@id='result']/form[3]/strong/div/button"): break
    except: pass
    time.sleep(1)
它在5秒内执行

现场无任何变化,我执行以下命令:

self.WaitForElement(u"//div[@id='result']/form[3]/strong/div/button")     


def WaitForElement(self,name):
    for i in range(60):
        try:
            if sel.is_element_present(name): break
        except: pass
        time.sleep(1)
它在30秒内执行,所以很奇怪


您有什么想法吗?

快速查看您的代码,我唯一能看到的是您在第一个示例中定义了一个标准字符串,但在第二个示例中定义了一个unicode字符串。

以下是我对is\u元素\u present方法的介绍:

   def is_element_present(self, how, what):
    try: self.driver.find_element(by=how, value=what)
    except NoSuchElementException, e: return False
    return True
因为它已经在做一个try…except块,所以您不需要将它包装在try…except中。由于is_元素_present只返回True或False,因此代码的except:pass部分可能永远不会执行。相反,只需使用if语句


我还认为你的代码中有一个拼写错误,而不是你自己

是的,但是如果没有这种unicode转换,我看不到执行时间上的任何差异。