Verify if the element is readonly or disabled
There are several major issues in the code:


violates the DRY principle
there is actually no element presence check - find_element_* method will fail with NoSuchElementException if the element is not found (well, you may be handling the exception outside of the method, but that scatters the logic too much resulting into more "spaghetti code") 


Instead, I would follow the Page Object pattern and build a "Page Element" abstraction, where every element will have the read_only property:

class BasePageElement(object):
    # other methods here

    @property
    def read_only(self):
        elm = self.driver.find_element(*self.locator)
        return bool(elm.get_attribute("readonly"))


class AddressElement(BasePageElement):
    locator = (By.ID, "address")


Note that I'm using the By.ID locator here and the .get_attribute() method as opposed to less readable and more fragile XPath approach.

This, though, does not handle the "element is not present" case properly - you may wrap the .find_element() call with try/except or think of a more generic way to handle it.