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

时间:2013-09-30 21:30:36

标签: android windows selenium webdriver selenium-webdriver

我使用selenium webdriver,android服务器进行移动浏览器自动化。

Android设备(运行android服务器的地方)连接到远程机器10.0.0.158,我想从开发机器10.0.0.138访问这台机器[我将使用eclipse运行设备自动化的webdriver代码),我想提一下这两台机器上的sdk都存在。

在Android驱动程序引用站点[https://code.google.com/p/selenium/wiki/AndroidDriver]中,他们提到了使用socat的远程连接过程,但这些命令是针对linux os的,在windows中不起作用,命令如下所示

# Instal socat, one time setup
$sudo apt-get install socat

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

任何人都可以告诉我windows将使用什么命令。

1 个答案:

答案 0 :(得分:3)

最后我解决了这个问题。

我正在分享这个程序,希望它对所有人都有帮助

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

1在远程机器(即与Android设备连接的机器)中,首先从http://blog.gentilkiwi.com/programmes/socat#englishversion下载socat-x.x.x.x.zip

2 现在通过命令提示符转到你已下载socat zip的文件夹[对我来说我已经在E:drive socat文件夹中下载]

3 现在在同一个命令提示符下输入命令adb.devices [我假设平台工具文件夹路径已在环境变量中设置] 检查天气远程机器是否正在检测您所需的设备,如果机器正确检测到设备,那么它将显示设备ID然后显示设备ID,否则它将显示设备ID然后文本离线

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

5一旦Android驱动程序在设备中启动,然后发出命令

adb forward tcp:8080 tcp:8080

6然后发出命令

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

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

所以现在一切都在远程机器上准备好了

验证天气Android WebDriver服务器可以从任何机器或网络接口访问打开网址http://remote machine ip:8081/wd/hub 在任何机器的firefox浏览器中

如果每件事情都没问题那么它会在firefox浏览器中显示一个空白页面

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

WebDriver driver = new AndroidDriver(); 

 and change it to  

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

8现在点击eclipse中的运行按钮,你会看到android设备中的输出在远程机器中连接。