| 155 | } |
| 156 | |
| 157 | func (dev *AndroidDevice) NewDriver(options ...DriverOption) (driverExt *DriverExt, err error) { |
| 158 | driverOptions := &DriverOptions{} |
| 159 | for _, option := range options { |
| 160 | option(driverOptions) |
| 161 | } |
| 162 | |
| 163 | var driver WebDriver |
| 164 | if dev.UIA2 || dev.LogOn { |
| 165 | driver, err = dev.NewUSBDriver(driverOptions.capabilities) |
| 166 | } else { |
| 167 | driver, err = dev.NewAdbDriver() |
| 168 | } |
| 169 | if err != nil { |
| 170 | return nil, errors.Wrap(err, "failed to init UIA driver") |
| 171 | } |
| 172 | |
| 173 | driverExt, err = newDriverExt(dev, driver, driverOptions.plugin) |
| 174 | if err != nil { |
| 175 | return nil, err |
| 176 | } |
| 177 | |
| 178 | if dev.LogOn { |
| 179 | err = driverExt.Driver.StartCaptureLog("hrp_adb_log") |
| 180 | if err != nil { |
| 181 | return nil, err |
| 182 | } |
| 183 | } |
| 184 | |
| 185 | return driverExt, nil |
| 186 | } |
| 187 | |
| 188 | // NewUSBDriver creates new client via USB connected device, this will also start a new session. |
| 189 | func (dev *AndroidDevice) NewUSBDriver(capabilities Capabilities) (driver WebDriver, err error) { |