首页 > IT技术 > python > 正文

python webDriver 智能等待页面元素
2012-06-29 12:06:07   来源:   评论:0 点击:

  在进行web自动化的时候,受页面加载速度影响比较大,常常会报element not found的错误。selenium1.0 中提供了selenium.isElementPre...
 

  在进行web自动化的时候,受页面加载速度影响比较大,常常会报element not found的错误。selenium1.0 中提供了selenium.isElementPresent(Xpath),用于判断xpath是否存在,存在就执行操作,不存在就可以等待一定的时间段。在webDriver中提供了WebDriverWait类,可以智能的等待页面元素加载完成再执行操作。核心函数如下:

  def until(self, method):
  """Calls the method provided with the driver as an argument until the \
  return value is not Falsy."""
  end_time = time.time() + self._timeout
  while(time.time() < end_time):
  try:
  value = method(self._driver)
  if value:
  return value
  except NoSuchElementException:
  pass
  time.sleep(self._poll)
  raise TimeoutException()

利用这个类就可以实现智能等待的效果:

wait = WebDriverWait(webdriver.chrome(),30)

  elm = wait.until(lambda x: x.find_element_by_xpath(Xpath))

  elm.click()

 再提供一个判断元素存在否:

  def isPresent(self):
  try: driver.find_element_by_xpath(Xpath)
  except NoSuchElementException, e: return False
  return True

相关热词搜索:python webDriver 智能

上一篇:坑爹的python中文编码问题
下一篇:webdriver的断言使用

分享到: 收藏
评论排行