2013-06-19 4 views
6

У нас есть Jenkins, работающий без головы на centOS vm и доступ к нему через HTTP-вызов на другом компьютере.centOS, Jenkins, Firefox & Selenium GRID - UnableToCreateProfileException

У меня есть проект для запуска UI Selenium Tests, все работают хорошо, кроме firefox. он жалуется, что профиль не находится на centOS vm, поэтому он может перенаправить его в виртуальную машину Windows для тестирования. Кто-нибудь знает, как получить последний и самый большой firefox на centOS, поскольку yum имеет только 17 (без головы CentOS VM)? Кроме того, где профиль firefox хранится в ОС CentOS, если я просто хочу просмотреть текущий профиль firefox на этой виртуальной машине? Любое другое решение, которое я не думал Дай мне знать, если больше информации необходима, Дженкинс ошибка ниже:

org.openqa.selenium.firefox.UnableToCreateProfileException: Given model profile directory does not exist: C:\Users\Selenium\FirefoxDriver Build info: version: '2.31.0', revision: '1bd294d', time: '2013-02-27 20:52:59' System info: os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-358.6.1.el6.x86_64', java.version: '1.7.0' Driver info: driver.version: unknown org.openqa.selenium.firefox.FirefoxProfile.verifyModel(FirefoxProfile.java:154) org.openqa.selenium.firefox.FirefoxProfile.<init>(FirefoxProfile.java:92) org.openqa.selenium.firefox.FirefoxProfile.<init>(FirefoxProfile.java:79) com.igt.sqes.automation.selenium.factories.WebDriverFactory.createWebDriver(Unknown Source) com.igt.sqes.automation.arcus.setup.ArcusTestSuiteSetup.setUp(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564) org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213) org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138) org.testng.SuiteRunner.privateRun(SuiteRunner.java:277) org.testng.SuiteRunner.run(SuiteRunner.java:240) org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) org.testng.TestNG.runSuitesSequentially(TestNG.java:1198) org.testng.TestNG.runSuitesSequentially(TestNG.java:1194) org.testng.TestNG.runSuitesLocally(TestNG.java:1123) org.testng.TestNG.run(TestNG.java:1031) org.testng.TestNG.privateMain(TestNG.java:1338) org.testng.TestNG.main(TestNG.java:1307)

он отлично работает, когда бежал из коробки окон вызывают водитель в этом месте и может пересылать проверить vm.

ответ

0

Один из способов сделать профиль Firefox доступным для CentOS VM для использования на виртуальной машине Windows с узлом Selnium - создать общий ресурс в Windows, указав профиль Firefox, а затем установить этот ресурс в CentOS , Вот шаги, которые я использовал, чтобы сделать эту работу:

  1. В Windows, создать долю в каталоге профиль Firefox находится в профиль Firefox по умолчанию, как правило, находится в чем-то вроде C:. \ Users \ имя пользователя \ AppData \ Local \ Mozilla \ Firefox \ Profiles \ 427nha20.default. Вы можете поместить профиль в каталог с ограниченными правами, например, с привилегиями только на чтение.
  2. На CentOS создайте каталог в каталоге/mnt с именем, которым вы предоставили общий ресурс Windows. Имена не обязательно должны быть одинаковыми, но это помогает сохранить согласованность.
  3. В CentOS добавьте следующую строку в файл/etc/fstab: // windowsVMIP/windowsShareName/mnt/windowsShareName cifs username = windowsUser, password = windowsPassword, uid = 123, gid = 123, _netdev, ro 0 0
  4. windowsVMIP - это IP виртуальной машины с долей; windowsShareName - это имя общей папки Windows;/mnt/windowsShareName - это имя, которое вы указали на общий ресурс Windows; имя пользователя и пароль - это учетные данные для пользователя Windows; uid - это идентификатор пользователя в CentOS; gid - это основной идентификатор группы в CentOS (вы можете получить uid и gid, выполнив команду grep jenkins/etc/passwd. Это соответственно 3-й и 4-й атрибуты);
  5. В CentOS, установите Windows, совместно вручную, выполнив следующие действия: установите -t CIFS -o имя пользователя = windowsUser, пароль = windowsPassword, UID = 123, GID = 123 // windowsVMIP/windowsShareName/мнт/windowsShareName
  6. кд to/mnt/windowsShare и ls, чтобы убедиться, что гора преуспела.
  7. Настройте драйвер Selenium Firefox, установив для FirefoxDriver.PROFILE возможность указывать на общий доступ к CentOS.Затем передайте возможности Selenium Webdriver при его создании. Например, в Java:

    FirefoxProfile profile = new FirefoxProfile(new File("/mnt/windowsShareName")); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability(FirefoxDriver.PROFILE, profile);
    WebDriver driver = new RemoteWebDriver(new URL(gridHubURL), capabilities);

  8. профиля Firefox будет поставляться из доли CentOS и направляется в узел для Windows VM Селена после того, как драйвер Селена конкретизируются.

2

1. Попробуйте установить новую версию Firefox

Для того, чтобы сделать это, Вы можете использовать Remi хранилище

## Remi Dependency on CentOS 6 and Red Hat (RHEL) 6 ## 
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 

## CentOS 6 and Red Hat (RHEL) 6 ## 
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 

Step by step instruction

2. Попробуйте скопировать существующий профиль и указать его явно

Plea se см. в следующей цепочке: CentOS Selenium - Preparing firefox profile

+0

будет смотреть, как только смогу! –