我使用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将使用什么命令。
答案 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设备中的输出在远程机器中连接。