如何将 Selendroid 添加到 android studio 以进行网页抓取?

Posted

技术标签:

【中文标题】如何将 Selendroid 添加到 android studio 以进行网页抓取?【英文标题】:How do I add Selendroid to android studio for web scraping? 【发布时间】:2015-11-05 19:40:37 【问题描述】:

请在回答之前查看下面的编辑!

我正在尝试使用 Selenium 设置动态网络抓取,但是,我似乎无法找到必要的 gradle 依赖项/lib 文件来添加到我的项目中。我查看了 Selendroid/Selenium 的网站,找不到必要的配置信息。我假设我需要网络驱动程序,因为我将要抓取网络数据。附带说明一下,在发现 htmlUnit 与 android 不兼容并且没有找到可行的替代方案之后,我决定使用 Selendroid。感谢所有帮助。

(解决此问题的其他问题仍未得到解答)

编辑: 所以使用 Exeon 的建议,我发现了 Selendroid 的以下依赖项:

compile 'io.selendroid:selendroid-client:0.16.0' 但是,在运行我的应用程序时,我收到以下错误(重复大约 10 次):

警告:依赖 org.apache.httpcomponents:httpclient:4.3.6 是 忽略调试,因为它可能与内部版本冲突 由安卓提供。如有问题,请重新包装 jarjar 更改类包

注意,我也尝试过使用以下方法:

compile 'org.testcontainers:selenium:0.9.7'

但我遇到了同样的错误......

【问题讨论】:

供以后参考,这是一个很好的网站,可以用来试探Gradle依赖:gradleplease.appspot.com/#Selenium 【参考方案1】:

类似这样的:

 buildscript 
     repositories 
         mavenCentral()
     
     dependencies 
         classpath 'org.seleniumhq.selenium:selenium-java:2.47.1'

          
 

(使用 gradle 添加maven repo)

【讨论】:

@Steve 它说了什么?对我来说,它首先显示一个错误,但在“再次同步”之后它起作用了 它不导入 Selenium 库。例如,我尝试使用 WebDriver/WebElement,但它不起作用【参考方案2】:

对于您关于依赖问题的错误,您可以尝试从 selendroid 库中排除 httpclient。我也试过了,但我遇到了其他依赖问题,但你可以试一试:

compile('io.selendroid:selendroid-client:0.16.0') 
        exclude(group: 'org.apache.httpcomponents', module: 'httpclient')
    

之后我就可以这样导入了:

import io.selendroid.client.*;

并使用 WebDriver。

【讨论】:

这使我遇到了错误:错误:任务':app:preDexDebug'的执行失败。 > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: 进程'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java''以非零退出值 1 结束 然后尝试:Build >> Clean Project OR 文件 >> Invalidate Caches / Restart OR 也许你有 THIS 问题,阅读接受的答案跨度>

以上是关于如何将 Selendroid 添加到 android studio 以进行网页抓取?的主要内容,如果未能解决你的问题,请参考以下文章

selendroid项目实战3 selendroid driver初始化失败问题

启动 selendroid 服务器时未列出我的 Android 设备

selendroid之toast处理

将 Android 环境添加到 IBM MobileFirst Shell 组件

如何摆脱 App 在启动时崩溃?

将自定义主题添加到应用程序时出错