CFSelenium " не удалось запустить новый сеанс браузера"
у меня возникли проблемы с CFSelenium/TestBox. Я разрабатываю на Windows 7 VM, 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 / Тест / Приложение.cfc включает сопоставления как для testbox/, так и для cfselenium/.
набор тестов, seleniumtest.cfc расширяет testbox.система.BaseSpec, и его beforeAll() и функции afterAll () создают экземпляр selenium, запускают его и разрывают:
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.ленг.RuntimeException: org.openqa.селен.ОС.WindowsRegistryException: проблема при управлении реестром, версия ОС '6.1', regVersion1 = ложная информация о сборке: версия: '2.42.2', редакция: '6a6995d', время: '2014-06-03 17:42: 03' информация о системе: хост: 'myhostname', ip: 'myvm_ip_address', os.имя: 'Windows 7', os.arch:' amd64', os.версия:' 6.1', java.версия: '1.7.0_67' информация о драйвере: driver.версия: неизвестно!--9-->
для всех других версий url или браузера я передаю selenium.start () (я пробовал "* chrome", "* firefox", "*iexplore", "* iexploreproxy"), я получаю следующую ошибку:
ответ Селена RC неверный: не удалось запустить новый сеанс браузера: org.openqa.селен.сервер.RemoteCommandException: ошибка при запуске браузера
из трассировки стека я вижу, что он терпит неудачу в selenium.DoCommand().
из другого сообщения SO было высказано предположение, что если порт 4444 в настоящее время используется, он может мешать серверу selenium-RC. Я перезапустил свою виртуальную машину и проверил, что порт 4444 не используется, запустив
Netstat –an | find “4444”
после повторного запуска теста suite, запуск 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?
EDIT: за ответ Дана, я загрузил chromedriver_win32 от http://chromedriver.storage.googleapis.com/index.html?path=2.21/, извлеченный к C:Program Files (x86)chromedriver, добавил Это к моему пути и перезагрузил виртуальную машину. После изменения драйвера с "* googlechrome " на "* chrome " он, похоже, работает... Мне удалось успешно выполнить следующий тест:
function testIncludes(){
selenium.open("https://www.google.com");
$assert.isEqual("Google", selenium.getTitle());
}
Итак, я думаю, мы на пути сюда.
кажется, что драйвер IE также работает.
1 ответов
Selenium не может запускать Chrome без драйвера Chrome (поскольку Chrome больше не является частью webkit), а Selenium может запускать браузеры webkit только по умолчанию. Вы должны иметь возможность запускать Firefox (если он установлен) без каких-либо дополнительных двоичных файлов.
чтобы заставить Chrome работать, вам нужно будет сделать следующее:
- загрузите корзину драйверов chrome.
- добавить его в свой путь.
- селен должен иметь возможность запускать браузер.
в коде могут быть некоторые другие проблемы, но я чувствую, что комментарии предоставили достаточно отзывов в этом отношении.
вы можете скачать драйвер с: https://sites.google.com/a/chromium.org/chromedriver/downloads
обновлено
IE также требует драйвера:
Сервер Драйверов Internet Explorer Это необходимо, если вы хотите использовать последний и самые большие возможности WebDriver InternetExplorerDriver. Убедитесь, что это доступно на вашем $PATH (или %PATH% в Windows), чтобы драйвер IE работал так, как ожидалось.
скачать версию 2.53.0 для (рекомендуется) 32 бит Windows IE или 64 бит Windows IE
выше было от:http://www.seleniumhq.org/download/ в отношении управлять окнами. Кажется, что хост с браузером необходимо запустить веб-драйвер Selenium специально для IE
Firefox также публикует свой собственный водитель:
драйвер Firefox включен в selenium-server-stanalone.jar доступен в загрузках. Драйвер поставляется в виде xpi (расширение firefox), который добавляется в профиль firefox при запуске нового экземпляра FirefoxDriver.
более подробную информацию можно найти здесь. Он работает аналогично Chrome и IE водители. Важно понимать, что, поскольку тесты выполняются на одном хосте, а браузеры удаленны от того, где выполняются тесты, вы можете также посмотреть на сетку Selenium.