如何将硒德鲁伊添加到安卓工作室进行网络抓取?

2022-09-03 16:20:01

在回答之前,请参阅下面的编辑!

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

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

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

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

警告:Dependency org.apache.httpcomponents:httpclient:4.3.6 在调试时被忽略,因为它可能与 Android 提供的内部版本冲突。如果出现问题,请使用jarjar重新打包以更改类包

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

compile 'org.testcontainers:selenium:0.9.7'

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


答案 1

像这样:

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

         } 
 }

(使用 gradle 添加 maven 存储库)


答案 2

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

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

在那之后,我能够像这样导入:

import io.selendroid.client.*;

并使用 WebDriver。


推荐