Python 如何处理wait.until的超时异常

Python 如何处理wait.until的超时异常,python,selenium,wait,Python,Selenium,Wait,当wati.until excute时获取超时异常。我不知道为什么,因为在刷新网页时img元素不会显示给用户 wait.until(EC.invisibility_of_element_located((By.XPATH,"//img[@src='//www.ibm.com/i/c.gif']"))) raise TimeoutException(message) selenium.common.exceptions.TimeoutException: Message: '' 这是我的代码

当wati.until excute时获取超时异常。我不知道为什么,因为在刷新网页时img元素不会显示给用户

wait.until(EC.invisibility_of_element_located((By.XPATH,"//img[@src='//www.ibm.com/i/c.gif']")))


raise TimeoutException(message)
selenium.common.exceptions.TimeoutException: Message: ''
这是我的代码:

from selenium import webdriver    
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
from selenium.webdriver.common.by import By
import selenium.webdriver.support.ui as ui

driver=webdriver.Firefox()
driver.get('https://www-01.ibm.com/products/hardware/configurator/americas/bhui/launchNI.wss') 
driver.find_element_by_id("modelnumber").send_keys("7383AC1") 
driver.find_element_by_name("submit").click() 
element1 = driver.find_element_by_xpath("//label[contains(text(),'SLES for SAP Apps 8 Skt Virt Unlimited Subs Only 5Yr (5731SLX)')]")
id=element1.get_attribute('for')
driver.find_element_by_id(id).click()

#updated with wait until
wait.until(EC.invisibility_of_element_located((By.XPATH,"//img[@src='//www.ibm.com/i/c.gif']")))

通过修改如下代码解决了我的问题:

driver=webdriver.Firefox()
driver.get('https://www-01.ibm.com/products/hardware/configurator/americas/bhui/launchNI.wss') 
driver.find_element_by_id("modelnumber").send_keys("7383AC1") 
driver.find_element_by_name("submit").click() 
element1 = driver.find_element_by_xpath("//label[contains(text(),'SLES for SAP Apps 8 Skt Virt Unlimited Subs Only 5Yr (5731SLX)')]")
id=element1.get_attribute('for')
driver.find_element_by_id(id).click()
print driver.title

wait=ui.WebDriverWait(driver,300)
image1=driver.find_element_by_xpath("//img[@src='//www.ibm.com/i/c.gif']")
print image1.get_attribute('class')
div1=driver.find_element_by_id("genMask_c")
wati.until(EC.staleness_of(driver.find_element_by_id("genMask_c")), 'visible')
driver.find_element_by_id("continueTop").click()
print driver.title

对该页面检查此XPath
//img[@src='//www.ibm.com/i/c.gif']
,结果正好是205个图像。即使第一个是可见的,它的高度也为1,并且在CSS样式中显式设置为
display:block
。那么,你到底希望什么不在那里呢?@Arran,谢谢,我已经解决了我的问题。我正在做类似于
的事情。等待。直到(EC.presence\u of_element\u located((By.LINK\u TEXT,i))
但我仍然收到timeoutexception,而如果我删除它,例如,请单击works。