Использование файла webdrivermanager.properties с Artifactory - PullRequest
0 голосов
/ 05 июня 2018

Спасибо за постоянное развитие / усовершенствование этого проекта.Это очень полезно и полнофункционально;) Я использовал для локального запуска теста, и он работает очень хорошо - так как я пытаюсь перенести вещи к чистой настройке CI;Более того, пытаясь использовать преимущества Docker и локальной Artifactory для двоичных файлов браузера.

В процессе настройки - я заметил, что URL-адреса в файле webdrivermanager.properties отображают файл XML, когда то же самоесделанный через Artifactory, он дает мне страницу каталога HTML Index со всей версией для данного двоичного файла браузера.

Вывод ошибки следующий:

`[chrome] Operating System: Linux
[chrome] 2018-06-05 13:58:09 WebDriverManager [main] [INFO]Reading https://artifactory.mycompany.com/chromedriver/ to seek chromedriver
[chrome] [Fatal Error] :1:55: White spaces are required between publicId and systemId.
[chrome] 2018-06-05 13:58:09 WebDriverManager [main] [ERROR]There was an error managing chromedriver 2.25 (org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 55; White spaces are required between publicId and systemId.)
[chrome] io.github.bonigarcia.wdm.WebDriverManagerException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 55; White spaces are required between publicId and systemId.
[chrome]      at io.github.bonigarcia.wdm.WebDriverManager.getDriversFromXml(WebDriverManager.java:797)
[chrome]      at io.github.bonigarcia.wdm.ChromeDriverManager.getDrivers(ChromeDriverManager.java:54)
[chrome]      at io.github.bonigarcia.wdm.WebDriverManager.filterCandidateUrls(WebDriverManager.java:492)
[chrome]      at io.github.bonigarcia.wdm.WebDriverManager.manage(WebDriverManager.java:442)
[chrome]      at io.github.bonigarcia.wdm.WebDriverManager.setup(WebDriverManager.java:219)
[chrome]      at controllers._BrowserFactory.StartBrowser(_BrowserFactory.java:84)
[chrome]      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[chrome]      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[chrome]      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[chrome]      at java.lang.reflect.Method.invoke(Method.java:498)
[chrome]      at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
[chrome]      at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
[chrome]      at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:455)
[chrome]      at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
[chrome]      at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
[chrome]      at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:168)
[chrome]      at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
[chrome]      at org.testng.TestRunner.privateRun(TestRunner.java:648)
[chrome]      at org.testng.TestRunner.run(TestRunner.java:505)
[chrome]      at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
[chrome]      at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
[chrome]      at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
[chrome]      at org.testng.SuiteRunner.run(SuiteRunner.java:364)
[chrome]      at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
[chrome]      at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
[chrome]      at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
[chrome]      at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
[chrome]      at org.testng.TestNG.runSuites(TestNG.java:1049)
[chrome]      at org.testng.TestNG.run(TestNG.java:1017)
[chrome]      at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:283)
[chrome]      at org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:75)
[chrome]      at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:120)
[chrome]      at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:386)
[chrome]      at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:323)
[chrome]      at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:143)
[chrome] Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 55; White spaces are required between publicId and systemId.
[chrome]      at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
[chrome]      at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
[chrome]      at io.github.bonigarcia.wdm.WebDriverManager.loadXML(WebDriverManager.java:807)
[chrome]      at io.github.bonigarcia.wdm.WebDriverManager.getDriversFromXml(WebDriverManager.java:786)
[chrome]      ... 34 more
`

Я пришелчерез похожую ветку https://github.com/bonigarcia/webdrivermanager/issues/157, но надеялся на любые мысли, которые у вас могут возникнутьАльтернативный подход на эту тему.

Большое спасибо, Самир

1 Ответ

0 голосов
/ 05 июня 2018

Ответ остается тем же, что вы уже нашли в этом выпуске .Чтобы узнать список chromedriver доступных двоичных файлов, WebDriverManager анализирует XML-файл, расположенный в некотором онлайн-хранилище (https://chromedriver.storage.googleapis.com/ по умолчанию).

Следовательно, ваш репозиторий https://artifactory.mycompany.com/chromedriver/ должен вернутьXML со следующим форматом (а не HTML), ожидаемый WebDriverManager:

<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://doc.s3.amazonaws.com/2006-03-01">
    <Name>chromedriver</Name>
    <Prefix />
    <Marker />
    <IsTruncated>false</IsTruncated>
    <Contents>
        <Key>2.0/chromedriver_linux32.zip</Key>
        <Generation>1380149859530000</Generation>
        <MetaGeneration>2</MetaGeneration>
        <LastModified>2013-09-25T22:57:39.349Z</LastModified>
        <ETag>"c0d96102715c4916b872f91f5bf9b12c"</ETag>
        <Size>7262134</Size>
    </Contents>
    <Contents>
        <Key>2.0/chromedriver_linux64.zip</Key>
        <Generation>1380149860664000</Generation>
        <MetaGeneration>2</MetaGeneration>
        <LastModified>2013-09-25T22:57:40.449Z</LastModified>
        <ETag>"858ebaf47e13dce7600191ed59974c09"</ETag>
        <Size>7433593</Size>
    </Contents>

    ...

</ListBucketResult>
...