2016-03-23 14 views
7

Ich habe einen Behat Test Selenium ausgeführt, wenn Javascript benötigt wird. Mein aktueller Behat Test funktioniert einwandfrei wenn Javascript (Selenium ist deaktiviert).Javascript test: Selen Cookies Daten url

Im Moment mein einziger Fehler Feedback von Selen ist die folgende Aussage:

 
unknown: Failed to set the 'cookie' property on 'Document': Cookies are disabled inside 'data:' URLs. 
     (Session info: chrome=48.0.2564.109) 
     (Driver info: chromedriver=2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b),platform=Linux 4.2.0-16-generic x86_64) (WARNING: The server did not provide any stacktrace information) 
     Command duration or timeout: 7 milliseconds 
     Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:06:42' 
     System info: host: 'ca7a41afbfee', ip: '172.17.0.10', os.name: 'Linux', os.arch: 'amd64', os.version: '4.2.0-16-generic', java.version: '1.8.0_45-internal' 
     Driver info: org.openqa.selenium.chrome.ChromeDriver 
     Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=/tmp/.com.google.Chrome.WWmJvH}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=48.0.2564.109, platform=LINUX, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}] 
     Session ID: b8a3f435fe337ca77d523d5b72f6235b (WebDriver\Exception\UnknownError) 

Was mache ich falsch hier? Einige Beiträge sprechen über Cookies, aber ich sehe nicht wirklich, wo sie anhängen.

Antwort

9

Sie können über den Chrome-Treiber kein Cookie festlegen, bis die Seite vollständig geladen ist. Verwenden Sie Selen, um auf das Laden der Seite zu warten, und setzen Sie dann Cookies.

+0

Schließlich wechsele ich von Selen auf [Nightwatch.js] (https://github.com/nightwatchjs/nightwatch), alles klar da. –

1

Sie offene Seite benötigen, bevor Cookie hinzufügen:

$capabilities = DesiredCapabilities::chrome(); 
$host = 'http://localhost:4444/wd/hub'; // this is the default 
$this->webDriver = RemoteWebDriver::create($host, $capabilities, 5000); 
$this->urnOpen('/'); 
$cookie = array(); 
$cookie['name'] = 'NAME'; 
$cookie['value'] = 'VALUE'; 
$this->webDriver->manage()->addCookie($cookie);