Selenium into android project

夙愿已清 提交于 2019-12-13 04:44:17

问题


I want to parse HTML page base on javascript and content load when I clicked on buttons and after javascript worked. I make my application on PC on Java using libs Jsoup, Selenium. I want it works on android. I added Selenium to new my Android application project and added dependencies in gradle:

compile 'org.seleniumhq.selenium:selenium-htmlunit-driver:2.48.2'

But I see many same messages:

Warning:Dependency org.apache.httpcomponents:httpclient:4.5.1 is
ignored for debug as it may be conflicting with the internal version
provided by Android. In case of problem, please repackage it with 
jarjar to change the class packages

After I try to add httpclient for android:

compile 'org.apache.httpcomponents:httpclient-android:4.3.5.1'

But it not works. There is 1 error:

Error:Execution failed for task ':app:preDexDebug'. > 
com.android.ide.common.process.ProcessException: 
org.gradle.process.internal.ExecException: Process 'command 'C:\Program 
Files\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 1

How to include Selenium to android project for parse HTML base on Javascript? or How to parse HTML base on JS without Selenium? Thanks.


回答1:


I add to Gradle file to dependencies block

configurations{
        all*.exclude group: 'org.apache.httpcomponents', module: 'httpclient'
        all*.exclude group: 'commons-logging', module: 'commons-logging'
        all*.exclude group: 'xalan', module: 'xalan'
        all*.exclude group: 'xerces', module: 'xercesImpl'
        all*.exclude group: 'xml-apis', module: 'xml-apis'
    }

and add to android block:

packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
    }

there is 1 error:

Information:Gradle tasks [:app:assembleDebug]
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72220Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42220Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:compileDebugNdk UP-TO-DATE
:app:compileDebugSources UP-TO-DATE
:app:preDexDebug UP-TO-DATE
:app:dexDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: Cannot merge new index 70725 into a non-jumbo instruction!
    at com.android.dx.merge.InstructionTransformer.jumboCheck(InstructionTransformer.java:109)
    at com.android.dx.merge.InstructionTransformer.access$800(InstructionTransformer.java:26)
    at com.android.dx.merge.InstructionTransformer$StringVisitor.visit(InstructionTransformer.java:72)
    at com.android.dx.io.CodeReader.callVisit(CodeReader.java:114)
    at com.android.dx.io.CodeReader.visitAll(CodeReader.java:89)
    at com.android.dx.merge.InstructionTransformer.transform(InstructionTransformer.java:49)
    at com.android.dx.merge.DexMerger.transformCode(DexMerger.java:842)
    at com.android.dx.merge.DexMerger.transformMethods(DexMerger.java:813)
    at com.android.dx.merge.DexMerger.transformClassData(DexMerger.java:785)
    at com.android.dx.merge.DexMerger.transformClassDef(DexMerger.java:682)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:542)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
    at com.android.dx.command.dexer.Main.run(Main.java:277)
    at com.android.dx.command.dexer.Main.main(Main.java:245)
    at com.android.dx.command.Main.main(Main.java:106)
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 2

how to solve this problem? Thanks




回答2:


problem does not solve, but I find HTTP-get request by sniffer browser and server post response which contains JSON with data that I needed. close.



来源:https://stackoverflow.com/questions/33138134/selenium-into-android-project

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!