如何将 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 设备