无法从同一局域网内的远程计算机访问Android设备

3
我正在使用selenium webdriver和android服务器进行移动浏览器自动化。
Android设备(其中运行android服务器)连接到远程机器10.0.0.158,我想从开发机器10.0.0.138访问此机器[在那里我将使用eclipse运行webdriver代码以实现设备自动化),我想提一件事,在这两个机器上都有android sdk。
在Android驱动程序参考网站 [ https://code.google.com/p/selenium/wiki/AndroidDriver ] 上,他们提到了使用socat进行远程连接的过程,但是这些命令适用于Linux操作系统,在Windows中不起作用,以下是命令。
# Instal socat, one time setup
$sudo apt-get install socat

$socat TCP-LISTEN:8081,fork TCP:localhost:8080

请问有人能告诉我在Windows下应该使用哪些命令吗?

1个回答

3

我终于解决了这个问题。

我分享一下步骤,希望对大家有所帮助

要在Windows环境中远程访问Android设备,我们需要执行以下步骤:

1. 在远程计算机(即连接有Android设备的计算机)上先下载socat-x.x.x.x.zip,下载地址:http://blog.gentilkiwi.com/programmes/socat#englishversion

2. 现在通过命令提示符进入下载socat zip文件的文件夹(对于我来说,我已经将它下载到E驱动器的socat文件夹中)

3. 接着,在同一个命令提示符中输入adb.devices命令(我假设平台工具文件夹路径已经设置在环境变量中),以检查远程计算机是否正确地检测到您想要的设备。如果机器能正确检测到设备,则会显示设备ID,然后是“device”文本;否则,它将显示设备ID,然后是“offline”文本

4. 如果远程计算机正确检测到设备,则手动启动设备中的Android服务器或输入命令

adb -shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity

如果有多个设备,请提供您设备的序列号。
adb -s <serialId> shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity

一旦设备中的Android驱动程序启动,然后执行以下命令:

adb forward tcp:8080 tcp:8080

第6步,然后执行以下命令:

socat TCP-LISTEN:8081,fork TCP:localhost:8080

[我已经给出了8081,但我们可以给出8082或8083或任何未使用的端口]

现在远程机器上的所有东西都准备好了

为了验证Android WebDriver服务器是否可以从任何机器或网络接口访问,请在任何机器中的Firefox浏览器中打开以下网址:http://remote machine ip:8081/wd/hub

如果一切正常,则Firefox浏览器将显示一个空白页面

7 现在在开发机器上[即通过eclipse执行代码的地方]只需修改下面的代码

WebDriver driver = new AndroidDriver(); 

 and change it to  

WebDriver driver = new AndroidDriver("http://remote machine ip:8081/wd/hub/");

现在在Eclipse中点击运行按钮,您将在连接到远程计算机的Android设备上看到输出。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接