Sto riscontrando problemi con CFSelenium/TestBox. Sto sviluppando su Windows 7 VM, Coldfusion 10. Ho scaricato una nuova copia di cfselenium da https://github.com/teamcfadvance/CFSelenium/archive/master.zip.CFSelenium "Impossibile avviare la nuova sessione del browser"
La mia struttura dei file è
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 include mappature sia per Testbox/e cfselenium /.
La suite di test, seleniumtest.cfc estende testbox.system.BaseSpec, e la sua beforeAll() e dopo All() funzioni istanziare selenio, avviarlo, e strappano giù:
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);
});
});
});
}
}
Nuovo comportamento: quando passando il seguente per selenium.start():
selenium.start("https://www.google.com", "*googlechrome");
ottengo il seguente errore:
The Response of the Selenium RC is invalid: Failed to start new browser session: java.lang.RuntimeException: org.openqa.selenium.os.WindowsRegistryException: Problem while managing the registry, OS Version '6.1', regVersion1 = false Build info: version: '2.42.2', revision: '6a6995d', time: '2014-06-03 17:42:03' System info: host: 'myhostname', ip: 'myvm_ip_address', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_67' Driver info: driver.version: unknown
Per tutte le altre versioni di URL o browser passo a selenium.start() (Ho provato '* chrome', '* firefox', '* iexplore', '* iexploreproxy'), ho ricevuto il seguente errore:
Dalla traccia dello stack, posso vedere che non riesce a selenium.DoCommand().
Da un altro post SO, è stato suggerito che se la porta 4444 era attualmente in uso, potrebbe interferire con il server RC-selenio. Ho riavviato il VM e verificato che la porta 4444 non era in uso eseguendo
Netstat –an | find “4444”
Dopo ancora una volta in esecuzione della suite di test, in esecuzione netstat con lo stesso comando mostrato
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
Guardando ceppi CF, ho vedere quanto segue:
Apr 29, 2016 09:44:23 AM Information [ajp-bio-8012-exec-3] - Starting HTTP request {URL=' http://localhost:4444/selenium-server/driver/ ', method='POST'}
È possibile che ci sia una cartella del server di selenio sotto wwwroot? È il webdriver?
MODIFICA: Per la risposta di Dan, ho scaricato chromedriver_win32 da http://chromedriver.storage.googleapis.com/index.html?path=2.21/, estratto in C: \ Programmi (x86) \ chromedriver, aggiunto al mio PERCORSO e riavviato la VM. Dopo aver cambiato il pilota '* googlechrome' a '* chrome', sembra funzionare ... ero in grado di eseguire il seguente test con successo:
function testIncludes(){
selenium.open("https://www.google.com");
$assert.isEqual("Google", selenium.getTitle());
}
Quindi penso che siamo sulla nostra strada qui.
Sembra che anche il driver IE funzioni.
James - c'è un errore di sintassi: super.beforeAll ('siteUnderTest', '* selectedBrowser); ha bisogno di un'altra citazione singola dopo * selectedBrowser ... forse un errore di copia e incolla? –
@MarkAKruger: sì, corretto. – earachefl
Forse un altro errore di battitura qui, ma la prima citazione singola della super chiamata non è una citazione singola _normal_ - 'super.beforeAll ('siteUnderTest','. E dove hai ottenuto 'cfselenium.BaseSpec' che stai estendendo dal cfc? Non lo vedo come parte del progetto su GitHub. –