Fix LOGGER -> _LOGGER typo
[sitecorepy.git] / sitecore / __init__.py
index 10b3c8ad38be08224b506693b3a5459e935ab6a8..0317541b7c6fda8fd7746f09143907661c3954fc 100755 (executable)
@@ -37,7 +37,13 @@ try:
 except ImportError, e:
     WebDriver = e  # allow some functionality without selenium
 
+
+_LOGGER = None
+
 def get_logger(verbose=0):
+    global _LOGGER
+    if _LOGGER != None:
+        return _LOGGER
     verbosities = [  # in order of decreasing severity
         logging.CRITICAL,
         logging.ERROR,
@@ -59,6 +65,7 @@ def get_logger(verbose=0):
     ch.setFormatter(formatter)
     # add ch to logger
     logger.addHandler(ch)
+    _LOGGER = logger
     return logger
 
 
@@ -132,6 +139,8 @@ class SiteCoreConnection (object):
 
     def save_section(self):
         self.logger.info('saving current section')
+        self.w.find_element_by_id('Ribbon_Nav_HomeStrip').click()
+        time.sleep(self.wait_time)
         self.w.find_element_by_link_text('Save').click()
         time.sleep(self.wait_time)
 
@@ -150,20 +159,22 @@ class SiteCoreConnection (object):
         a = self.w.switch_to_active_element()
         a.send_keys(message+'\n')
 
-    def find_field(self, field):
-        self.logger.info('finding %s field' % field)
+    def find_field(self, field_regexp, name=None):
+        self.logger.info('finding %s field' % name)
         # found id start by manually focusing in the element and running
         #   >>> a = s.w.switch_to_active_element()
         #   >>> a.get_attribute('id')
         # FIELD*, but the number * changes between sessions/versions
-        fields = [f for f in self.w.find_elements_by_tag_name('input')
-                  if f.get_attribute('id').startswith('FIELD')]
+        fields = []
+        for tag in ['input', 'textarea', 'iframe']:
+            fields.extend([f for f in self.w.find_elements_by_tag_name(tag)
+                           if f.get_attribute('id').startswith('FIELD')])
         match = False
         for f in fields:
             granddad = f.find_element_by_xpath('/../..')
-            if granddad.get_text() == field:
+            if field_regexp.match(granddad.get_text()) != None:
                 match = True
                 break
         if match != True:
-            raise KeyError(field)
+            raise KeyError(name)
         return (granddad, f)