У меня возникают проблемы с CFSelenium/TestBox. Im, развивающийся на виртуальной машине Windows 7, Coldfusion 10. Я загрузил новую копию cfselenium из https://github.com/teamcfadvance/CFSelenium/archive/master.zip.
Моя файловая структура
wwwroot |
cfselenium |
Selenium-RC |
Selenium-server-standalone-2.46.0.jar
Selenium.cfc
Server.cfc
Testbox |
… various testbox files
MySite |
Tests|
Specs |
… my test files
seleniumtest.cfc
Application.cfc
Index.cfm
MySite/Test/Application.cfc включает в себя сопоставления как для testbox/, так и для cfselenium/.
Набор тестов, seleniumtest.cfc расширяет testbox.system.BaseSpec, а его функции beforeAll() и afterAll() создают экземпляр селена, запускают его и срывают:
component extends="testbox.system.BaseSpec" {
function beforeAll( ){
// create Selenium class
selenium = new cfselenium.Selenium();
// Start it up.
selenium.start( "mysite", "*chrome" );
}
// executes after all suites+specs in the run() method
function afterAll(){
selenium.stop();
selenium.stopServer();
}
function run( testResults, testBox ){
describe('selenium', function(){
// hello world equivalent
describe('equality', function(){
it('true should be true', function(){
expect( true ).toBe(true);
});
});
});
}
}
Новое поведение: при передаче следующего файла selenium.start():
selenium.start( "https://www.google.com", "*googlechrome" );
Я получаю следующую ошибку:
Ответ Selenium RC недействителен: не удалось запустить новый сеанс браузера: java.lang.RuntimeException: org.openqa.selenium.os.WindowsRegistryException: проблема при управлении реестром, версия ОС "6.1", regVersion1 = false Информация о сборке: версия: '2.42.2', версия: '6a6995d', время: '2014-06-03 17:42:03' Системная информация: host: 'myhostname', ip: 'myvm_ip_address', os.name: "Windows 7", os.arch: "amd64", os.version: "6.1", java.version: "1.7.0_67" Информация о драйвере: driver.version: unknown
Для всех других версий url или браузера я перехожу к selenium.start() (я пробовал '* chrome', '* firefox', '* iexplore', '* iexploreproxy'), я получаю следующую ошибку:
Ответ Selenium RC недействителен: не удалось запустить новый сеанс браузера: org.openqa.selenium.server.RemoteCommandException: ошибка при запуске браузера
Из трассировки стека я вижу, что он не работает в selenium.DoCommand().
С другого сообщения SO было высказано предположение, что если порт 4444 в настоящее время используется, он может помешать серверу selenium-RC. Я перезапустил свою виртуальную машину и подтвердил, что порт 4444 не используется, запустив
Netstat –an | find "4444"
После повторного запуска набора тестов запуск netstat с той же командой показал
TCP 0.0.0.0:4444 0.0.0.0:0 LISTENING
TCP 127.0.0.1:4444 127.0.0.1:49209 ESTABLISHED
TCP 127.0.0.1:49209 127.0.0.1:4444 ESTABLISHED
TCP [::]:4444 [::]:0 LISTENING
TCP [::1]:4444 [::1]:49208 ESTABLISHED
TCP [::1]:49208 [::1]:4444 ESTABLISHED
Из просмотра журналов cf я вижу следующее:
29 апреля 2016 года 09:44:23 AM Информация [ajp-bio-8012-exec-3] - Запуск HTTP-запроса {URL = ' http://localhost: 4444/selenium-server/driver/ ', method =' POST '}
Предполагается, что папка selenium-server под wwwroot? Это webdriver?
РЕДАКТИРОВАТЬ: Ответ на Dan, я загрузил chromedriver_win32 из http://chromedriver.storage.googleapis.com/index.html?path=2.21/, извлеченный в C:\Program Files (x86)\chromedriver, добавил это к моей PATH и перезагрузил виртуальную машину. После изменения драйвера с '* googlechrome' на '* chrome', похоже, он работает... Я смог успешно выполнить следующий тест:
function testIncludes(){
selenium.open("https://www.google.com");
$assert.isEqual("Google", selenium.getTitle());
}
Итак, я думаю, что мы здесь.
Похоже, что IE-драйвер также работает.