'Joins the given path part(s) to the given base path.
The path separator (``/`` or ``\``) is inserted when needed and
the possible absolute paths handled as expected. The resulted
path is also normalized.
Examples:
| ${path} = | Join Path | my        | path  |
| ${p2} =   | Join Path | my/       | path/ |
| ${p3} =   | Join Path | my        | path  | my | file.txt |
| ${p4} =   | Join Path | my        | /path |
| ${p5} =   | Join Path | /my/path/ | ..    | path2 |
- ${path} = \'my/path\'
- ${p2} = \'my/path\'
- ${p3} = \'my/path/my/file.txt\'
- ${p4} = \'/path\'
- ${p5} = \'/my/path2\''

def join_path(self, base, *parts):

    base = base.replace('/', os.sep)
    parts = [p.replace('/', os.sep) for p in parts]
    return self.normalize_path(os.path.join(base, *parts))
