Winium.Mobile icon indicating copy to clipboard operation
Winium.Mobile copied to clipboard

Add commands to set network connection

Open NickAb opened this issue 10 years ago • 1 comments

Add commands to switch phone network off, set it to different speed limits, etc. See related sections in: https://github.com/SeleniumHQ/mobile-spec/blob/master/spec-draft.md#value-alias-------data--wifi--airplane-mode- https://code.google.com/p/selenium/source/browse/spec-draft.md?repo=mobile#104

NickAb avatar Aug 05 '15 02:08 NickAb

Programmatic network throttling can be achieved using classes from %PROGRAMFILES(X86)%\Microsoft XDE\8.1\Microsoft.Xde.Interface.dll](Microsoft.Xde.Interface.dll

using Microsoft.Xde.Interface;
//...
client = AutomationClient.CreateAutomationClient(this.emulatorVm.Name);
client.IsNetworkSimulationEnabled = true
client.NetThrottlingSpeed = NetworkThrottlingSpeed.NoNetwork;

But network throttling will affect InnerServer and, if network is turned off, render it unable to respond to Driver commands.

Further research is need on how to bypass network throttling for InnerServer <-> Driver communications. XDE itself uses network connection to interact with Emulator, so it is possible to bypass throttling, but it is unclear how to do so at the moment.

One easy solution will be switching from network communications to file based communications. This will give following benefits:

  • No more dependence on network
  • No need to determine emulator/device IP address
  • No need to bind on random free port an communicate port back to Driver

Drawbacks:

  • Most likely file communications will require some kind of polling, instead of clear event based solution.

NickAb avatar Aug 11 '15 04:08 NickAb