| 119 | |
| 120 | |
| 121 | class HoldKeyContext: |
| 122 | @preconditions(_validate_mixin, _validate_key) |
| 123 | def __init__(self, mixin, key): |
| 124 | self.mixin = mixin |
| 125 | self.key = key |
| 126 | |
| 127 | def __enter__(self): |
| 128 | ActionChains(self.mixin.driver).key_down(self.key).perform() |
| 129 | |
| 130 | def __exit__(self, type, value, traceback): |
| 131 | ActionChains(self.mixin.driver).key_up(self.key).perform() |
| 132 | |
| 133 | |
| 134 | class DataTableCellFacade(object): |