我有另一种方法的方法体:
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秒内执行,所以非常奇怪。
你有什么想法吗?
答案 0 :(得分:0)
快速查看代码,我唯一能看到的是你在第一个例子中定义了一个标准字符串,而在第二个例子中定义了一个unicode字符串。
答案 1 :(得分:0)
以下是我对is_element_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 ...中。由于is_element_present只返回True或False,因此可能永远不会执行except:pass部分代码。相反,只需使用if语句。
我也认为你的代码中有拼写错误(“sel”而不是“self”)。