Can';t从同一局域网内的远程机器访问Android设备
我正在使用SeleniumWebDriver,android服务器实现移动浏览器自动化 Android设备(运行Android服务器的地方)连接到远程机器10.0.0.158,我想从开发机器10.0.0.138访问这台机器[在那里我将使用eclipse运行设备自动化的webdriver代码],我想提到一件事,在这两台机器中都存在Android sdk 在Android驱动程序参考网站[]中,他们提到了使用socat的远程连接过程,但这些命令是针对在windows中不工作的linux操作系统的,下面给出了这些命令Can';t从同一局域网内的远程机器访问Android设备,android,windows,selenium,webdriver,selenium-webdriver,Android,Windows,Selenium,Webdriver,Selenium Webdriver,我正在使用SeleniumWebDriver,android服务器实现移动浏览器自动化 Android设备(运行Android服务器的地方)连接到远程机器10.0.0.158,我想从开发机器10.0.0.138访问这台机器[在那里我将使用eclipse运行设备自动化的webdriver代码],我想提到一件事,在这两台机器中都存在Android sdk 在Android驱动程序参考网站[]中,他们提到了使用socat的远程连接过程,但这些命令是针对在windows中不工作的linux操作系统的,下
# Instal socat, one time setup
$sudo apt-get install socat
$socat TCP-LISTEN:8081,fork TCP:localhost:8080
有人能告诉我windows将使用什么命令吗。我终于解决了这个问题 我正在分享这个过程,希望它对所有人都有帮助 要在windows环境中远程访问android设备,我们需要执行以下步骤 1在远程机器(即与android设备连接的机器)中,首先从 2现在通过命令提示符转到您下载了socat zip的文件夹[我在E:drive-socat文件夹中下载了它] 3现在在同一命令提示符下给出命令adb.devices[我假设环境变量中已经设置了平台工具文件夹路径] 要检查远程机器是否检测到所需设备,如果机器正确检测到设备,则会显示设备id,然后显示文本设备,否则会显示设备id,然后显示文本脱机 4如果在远程机器中正确检测到设备,则手动启动设备中的android服务器或发出命令
adb -shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity
如果存在多个设备,请提供设备的串行id
adb -s <serialId> shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity
6然后发出命令
adb forward tcp:8080 tcp:8080
socat TCP-LISTEN:8081,fork TCP:localhost:8080
[我已经给出了8081,但我们可以给出8082或8083或任何未使用的端口]
现在远程机器上的一切都准备好了
要验证是否可以从任何机器或网络接口访问Android WebDriver服务器,请打开urlhttp://remote 机器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中的run按钮,您将在连接到远程机器的android设备中看到输出