<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.closeApp(new ReqCloseApp{PackageName = packageName});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove active">
<a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
</li>
- <li class="nav-item remove">
+ <li class="nav-item remove">
<a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
</li>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.getActiveAppToolkitName(new ReqGetActiveAppToolkitName{});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+String packageName = "packageName";
+var response = client.getAppInfo(new ReqGetAppInfo{PackageName = packageName});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% capture code %}
{% highlight python linenos %}
-def get_file_chunks(filename):
- CHUNK_SIZE = 1024 * 1024
- with open(filename, 'rb') as f:
- while True:
- piece = f.read(CHUNK_SIZE)
- if len(piece) == 0:
- return
- yield ReqInstallApp(package = piece)
-
-tpkPath = './app.tpk'
-tpkFile = get_file_chunks(tpkPath)
+def get_file_chunks(filename):
+ CHUNK_SIZE = 1024 * 1024
+ with open(filename, 'rb') as f:
+ while True:
+ piece = f.read(CHUNK_SIZE)
+ if len(piece) == 0:
+ return
+ yield ReqInstallApp(package = piece)
+
+tpkPath = './app.tpk'
+tpkFile = get_file_chunks(tpkPath)
response = stub.installApp(tpkFile)
{% endhighlight %}
{% endcapture %}
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% endhighlight %}
{% endcapture %}
{% include fix_linenos.html code=code %}
-{% assign code = nil %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+String packageName = "packageName";
+var response = client.launchApp(new ReqLaunchApp{PackageName = packageName});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+String packageName = "packageName";
+var response = client.removeApp(new ReqRemoveApp{PackageName = packageName});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.click(new ReqClick{ Type = ReqClick.Types.RequestType.Coord, Coordination = new Point{ X = 100, Y = 100 } });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove active">
<a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
</li>
- <li class="nav-item remove">
+ <li class="nav-item remove">
<a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
</li>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.flick(new ReqFlick{ StartPoint = new Point{ X = 10, Y = 500 }, EndPoint = new Point{ X = 10, Y = 200 }, DurationMs = 150 });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
<div class="tab-pane fade" id="java-tab-pane">
</div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.getDeviceTime(new ReqGetDeviceTime{ Type = ReqGetDeviceTime.Types.TimeType.Wallclock });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.getScreenSize(new ReqGetScreenSize{});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove active">
<a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
</li>
- <li class="nav-item remove">
+ <li class="nav-item remove">
<a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
</li>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.longClick(new ReqClick{ Type = ReqClick.Types.RequestType.Coord, Coordination = new Point{ X = 100, Y = 100 } });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.sendKey(new ReqKey{ Type = ReqKey.Types.KeyType.Xf86, ActionType = ReqKey.Types.KeyActionType.Stroke, XF86KeyCode = "Left" });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% capture code %}
{% highlight python linenos %}
-response = stub.takeScreenshot(ReqTakeScreenshot())
-image = open("screenshot.png", "wb")
-for r in response:
- image.write(r.image)
+response = stub.takeScreenshot(ReqTakeScreenshot())
+image = open("screenshot.png", "wb")
+for r in response:
+ image.write(r.image)
image.close()
{% endhighlight %}
{% endcapture %}
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+String path = "screenshot.png";
+FileStream fs = File.Create(path);
+while(await responses.ResponseStream.MoveNext())
+{
+ var response = responses.ResponseStream.Current;
+ fs.Write(response.Image.ToByteArray());
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.touchDown(new ReqTouchDown{ Coordination = new Point{ X = 100, Y = 100 } });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.touchDown(new ReqTouchDown{ Coordination = new Point{ X = 100, Y = 100 } });
+var response2 = client.touchMove(new ReqTouchMove{ SeqId = response.SeqId, Coordination = new Point{ X = 100, Y = 500 } });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.touchDown(new ReqTouchDown{ Coordination = new Point{ X = 100, Y = 100 } });
+var response2 = client.touchUp(new ReqTouchUp{ SeqId = response.SeqId, Coordination = new Point{ X = 100, Y = 100 } });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.actionAndWaitEvent(new ReqActionAndWaitEvent{ Type = ReqActionAndWaitEvent.Types.ActionType.Key, XF86KeyCode = "Down",
+ EventType = ReqActionAndWaitEvent.Types.EventType.EventStateChangedFocused, TimeoutMs = 500 });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var element = client.findElement(new ReqFindElement{ WidgetType = "TextField" });
+var response = client.clear(new ReqClear{ ElementId = element.Element.ElementId });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% capture code %}
{% highlight python linenos %}
- element = stub.findElement(ReqFindElement(maxDepth = 1, isShowing = True))
- response = stub.dumpObjectTree(ReqDumpObjectTree(elementId = element.element.elementId))
+ element = stub.findElement(ReqFindElement(maxDepth = 1, isShowing = True))
+ response = stub.dumpObjectTree(ReqDumpObjectTree(elementId = element.element.elementId))
{% endhighlight %}
{% endcapture %}
{% include fix_linenos.html code=code %}
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var element = client.findElement(new ReqFindElement { MaxDepth = 1, IsShowing = true });
+var response = client.dumpObjectTree(new ReqDumpObjectTree{ ElementId = element.Element.ElementId });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.findElement(new ReqFindElement{ IsClickable = true, });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
<div class="tab-pane fade" id="js-tab-pane">
{% capture code %}
{% highlight js linenos %}
-stub.findElements({ isClickable: true }, (err, response) => {
+stub.findElements({ isClickable: true }, (err, response) => {
if (err) console.log(err);
else console.log(response);
})
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.findElements(new ReqFindElements{ IsClickable = true, });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var element = client.findElement(new ReqFindElement{ MaxDepth = 1, IsShowing = true });
+var response = client.getAttribute(new ReqGetAttribute{ ElementId = element.Element.ElementId, Attribute = ReqGetAttribute.Types.RequestType.Showing });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var element = client.findElement(new ReqFindElement{ MaxDepth = 1, IsShowing = true });
+var response = client.getSize(new ReqGetSize{ Type = ReqGetSize.Types.CoordType.Screen, ElementId = element.Element.ElementId });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var element = client.findElement(new ReqFindElement{ WidgetType = "TextLabel" });
+var response = client.getTextMinBoundingRect(new ReqGetTextMinBoundingRect{ ElementId = element.Element.ElementId });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var element = client.findElement(new ReqFindElement{ WidgetType = "TextField" });
+var response = client.getValue(new ReqGetValue{ ElementId = element.Element.ElementId, Type = ParamType.String });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var element = client.findElement(new ReqFindElement{ IsFocusable = true, IsShowing = true });
+var response = client.setFocus(new ReqSetFocus{ ElementId = element.Element.ElementId });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove active">
<a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
</li>
- <li class="nav-item remove">
+ <li class="nav-item remove">
<a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
</li>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var response = client.setTimeout(new ReqSetTimeout{ Timeout = 5000 });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
<li class="nav-item remove active">
<a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
</li>
- <li class="nav-item remove">
+ <li class="nav-item remove">
<a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
</li>
<li class="nav-item remove" style="display:none">
<a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
</li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="grpc-tab" data-target="#grpc-tab-pane">C#</a>
+ </li>
</ul>
<div class="tab-content">
<div class="tab-pane fade active" id="python-tab-pane">
{% assign code = nil %}
</div>
<div class="tab-pane fade" id="java-tab-pane">
-
+
+ </div>
+ <div class="tab-pane fade" id="grpc-tab-pane">
+{% capture code %}
+{% highlight csharp linenos %}
+var element = client.findElement(new ReqFindElement{ WidgetType = "TextField" });
+var response = client.setValue(new ReqSetValue{ ElementId = element.Element.ElementId, StringValue = "Test" });
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
</div>
</div>
--- /dev/null
+---
+layout: default
+title: C#
+parent: Getting Started
+nav_order: 34
+---
+
+# Quick Start
+{: .fs-8 }
+
+This guide gets you started with Aurum in C# with a simple working example.
+This guide allows you to use Aurum on Tizen devices.
+{: .fs-5 .fw-300 }
+
+## Prerequisites
+
+## Download the example
+```bash
+# Clone the repository to get the example code:
+$ git clone -b tizen git://git.tizen.org/platform/core/uifw/aurum
+# Navigate to the C# example:
+$ cd aurum/examples/C#
+# Install the example's dependencies
+```
+
+## Download the aurum.proto
+From the examples/C# directory:
+```bash
+$ curl -L -O https://github.sec.samsung.net/pages/tizen/aurum/protocol/aurum.proto
+```
+
+## Connect to target
+```bash
+$ sdb shell app_launcher -s org.tizen.aurum-bootstrap
+$ sdb forward tcp:50051 tcp:50051
+```
+
+## Run a Aurum example
+From the examples/C# directory:
+```bash
+$ dotnet run
+```
+Congratulations! You’ve just run a UI automation test application with Aurum.
+
+## Introduce an example code
+{% capture code %}
+{% highlight csharp linenos %}
+using System;
+using Grpc.Core;
+using Aurum;
+
+namespace GrpcSample
+{
+ static class Program
+ {
+ [STAThread]
+ static void Main(string[] args)
+ {
+ Environment.SetEnvironmentVariable("GRPC_CSHARP_EXT_OVERRIDE_LOCATION", "/usr/lib/libgrpc_csharp_ext.so", EnvironmentVariableTarget.Process);
+ Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure);
+ var client = new Bootstrap.BootstrapClient(channel);
+ var response = client.getDeviceTime(new ReqGetDeviceTime{ Type = ReqGetDeviceTime.Types.TimeType.Wallclock });
+ Console.WriteLine(response.LocaleDatetime);
+ }
+ }
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+
+## What’s next
+- Explore the [API reference](/tizen/aurum/docs/commands/).
+- The Aurum [issue tracker](https://github.sec.samsung.net/tizen/aurum/issues) - let the Aurum maintainers know here if you think you've found a bug
\ No newline at end of file
# Navigate to the Java example:
$ cd aurum/examples/java
# Install the example's dependencies
-$ npm install
+$ npm install
```
## Download the aurum.proto
From the examples/node directory:
```bash
-$ curl -L -O https://github.sec.samsung.net/pages/tizen/aurum/protocol/aurum.proto
+$ curl -L -O https://github.sec.samsung.net/pages/tizen/aurum/protocol/aurum.proto
```
## What’s next
# Navigate to the Node example:
$ cd aurum/examples/node
# Install the example's dependencies
-$ npm install
+$ npm install
```
## Download the aurum.proto
From the examples/node directory:
```bash
-$ curl -L -O https://github.sec.samsung.net/pages/tizen/aurum/protocol/aurum.proto
+$ curl -L -O https://github.sec.samsung.net/pages/tizen/aurum/protocol/aurum.proto
```
## Connect to target
## Generate gRPC code from aurum.proto
From the examples/python directory:
```bash
-$ curl -L -O https://github.sec.samsung.net/pages/tizen/aurum/protocol/aurum.proto
+$ curl -L -O https://github.sec.samsung.net/pages/tizen/aurum/protocol/aurum.proto
$ python3 -m grpc_tools.protoc --python_out=. --grpc_python_out=. --proto_path=. aurum.proto
```
# Aurum
{: .fs-9 }
-Aurum is a UI automation framework without UI Toolkit dependency.
+Aurum is a UI automation framework without UI Toolkit dependency.
{: .fs-6 .fw-300 }
[Learn more](/tizen/aurum/docs/introduction){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 }
Get started now!
{: .fs-6 .fw-300 }
-[Python](/tizen/aurum/docs/gettingstarted/python){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 } [Node](/tizen/aurum/docs/gettingstarted/node){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 }
----
+[Python](/tizen/aurum/docs/gettingstarted/python){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 } [Node](/tizen/aurum/docs/gettingstarted/node){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 } [C#](/tizen/aurum/docs/gettingstarted/C#){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 }
+---
### License
--- /dev/null
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <OutputType>Exe</OutputType>
+ <TargetFramework>netcoreapp3.1</TargetFramework>
+ </PropertyGroup>
+
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugType>portable</DebugType>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>None</DebugType>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <Protobuf Include="aurum.proto" GrpcServices="Client" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <PackageReference Include="Tizen.NET" Version="9.0.0.16445" >
+ <ExcludeAssets>Runtime</ExcludeAssets>
+ </PackageReference>
+ <PackageReference Include="Tizen.NET.Sdk" Version="1.1.6" />
+ <PackageReference Include="Tizen.NUI.XamlBuild" Version="1.0.27" />
+ <PackageReference Include="Grpc.Core" Version="2.43.0" />
+ <PackageReference Include="Google.Protobuf" Version="3.19.4" />
+ <PackageReference Include="Grpc.Tools" Version="2.43.0" PrivateAssets="All" />
+ </ItemGroup>
+
+ <PropertyGroup>
+ <NeedInjection>True</NeedInjection>
+ </PropertyGroup>
+
+</Project>
--- /dev/null
+using System;
+using Grpc.Core;
+using Aurum;
+
+namespace GrpcSample
+{
+ static class Program
+ {
+ [STAThread]
+ static void Main(string[] args)
+ {
+ Environment.SetEnvironmentVariable("GRPC_CSHARP_EXT_OVERRIDE_LOCATION", "/usr/lib/libgrpc_csharp_ext.so", EnvironmentVariableTarget.Process);
+ Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure);
+ var client = new Bootstrap.BootstrapClient(channel);
+ var response = client.getDeviceTime(new ReqGetDeviceTime{ Type = ReqGetDeviceTime.Types.TimeType.Wallclock });
+ Console.WriteLine(response.LocaleDatetime);
+ }
+ }
+}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="4" package="org.tizen.example.GrpcSample" version="1.0.0">
+ <profile name="common" />
+ <ui-application appid="org.tizen.example.GrpcSample" exec="GrpcSample.dll" type="dotnet" multiple="false" taskmanage="true" nodisplay="false">
+ <icon>GrpcSample.png</icon>
+ <label>GrpcSample</label>
+ <metadata key="http://tizen.org/metadata/prefer_dotnet_aot" value="true" />
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/window.priority.set</privilege>
+ </privileges>
+</manifest>