2013-06-19 32 views
6

Chúng ta có Jenkins chạy không đầu trên một vm centOS và truy cập nó thông qua một cuộc gọi http trên một máy tính khác.centOS, Jenkins, Firefox & Selenium GRID - CannotToCreateProfileException

Tôi có một dự án để chạy Kiểm tra giao diện người dùng Selenium, tất cả đều hoạt động tốt ngoại trừ các firefox. nó là phàn nàn về hồ sơ không được trên vm CentOS để nó có thể chuyển tiếp nó vào cửa sổ VM để thử nghiệm. Có ai biết làm thế nào để có được firefox mới nhất và lớn nhất trên centOS như yum chỉ có 17 (không đầu CentOS VM)? Ngoài ra, hồ sơ firefox được lưu trữ trên hệ điều hành CentOS nếu tôi chỉ muốn quét một hồ sơ firefox hiện tại trên máy ảo đó? Bất kỳ giải pháp khác mà tôi đã không nghĩ đến Hãy cho tôi biết nếu biết thêm là cần thiết, Jenkins lỗi dưới đây:

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)

nó hoạt động tốt khi chạy từ một ô cửa sổ làm cho lái xe là ở vị trí đó và có thể chuyển tiếp để kiểm tra vm.

Trả lời

0

Một cách tạo cấu hình Firefox có sẵn cho CentOS VM để sử dụng trên máy ảo Windows chạy nút Selnium là tạo chia sẻ trên Windows trỏ đến cấu hình Firefox và sau đó gắn chia sẻ đó trên CentOS . Dưới đây là các bước tôi đã sử dụng để thực hiện công việc này:

  1. Trên Windows, tạo một phần của thư mục cấu hình Firefox. Tiểu sử mặc định của Firefox thường nằm trong C: \ Users \ username \ AppData \ Local \ Mozilla \ Firefox \ Profiles \ 427nha20.default. Bạn có thể muốn đặt cấu hình trong một thư mục giới hạn quyền, chẳng hạn như một với đặc quyền chỉ đọc.
  2. Trên CentOS, tạo thư mục trong thư mục/mnt với tên bạn đã chia sẻ Windows. Các tên không nhất thiết phải giống nhau nhưng nó giúp giữ cho mọi thứ nhất quán.
  3. Trên CentOS, thêm dòng sau vào tệp/etc/fstab: // windowsVMIP/windowsShareName/mnt/windowsShareName cifs username = windowsUser, password = windowsPassword, uid = 123, gid = 123, _netdev, ro 0 0
  4. windowsVMIP là IP của máy ảo có chia sẻ; windowsShareName là tên của Windows chia sẻ;/mnt/windowsShareName là tên bạn đã chia sẻ Windows; tên người dùng và mật khẩu là thông tin đăng nhập cho người dùng Windows; uid là ID người dùng trên CentOS; gid là ID nhóm chính trên CentOS (bạn có thể nhận được uid và gid bằng cách thực hiện grep jenkins/etc/passwd. Chúng là thuộc tính thứ 3 và thứ 4 tương ứng);
  5. Trong CentOS, gắn kết chia sẻ Windows theo cách thủ công bằng cách thực hiện như sau: mount -t cifs -o username = windowsNgười dùng, mật khẩu = windowsPassword, uid = 123, gid = 123 // windowsVMIP/windowsShareName/mnt/windowsShareName
  6. cd đến/mnt/windowsShare và ls để đảm bảo rằng gắn kết thành công
  7. Định cấu hình trình điều khiển Firefox Selenium bằng cách đặt khả năng FirefoxDriver.PROFILE để trỏ tới chia sẻ CentOS được gắn kết.Sau đó chuyển các khả năng cho Trình quản lý web Selenium khi tạo nó. Ví dụ trong 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. Hồ sơ Firefox sẽ được lấy từ các phần CentOS và chuyển tiếp đến các nút Windows VM Selenium sau khi tài xế Selenium được khởi tạo.

2

1. Cố gắng cài đặt phiên bản mới hơn của Firefox

Để làm được điều mà bạn có thể sử dụng kho 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. Cố gắng sao chép cấu hình hiện tại và chỉ định rõ ràng

Plea se xem các chủ đề sau: CentOS Selenium - Preparing firefox profile

+0

sẽ xem xét sớm nhất có thể! –

Các vấn đề liên quan