operasoftware / operachromiumdriver

OperaDriver for Chromium-based Opera releases
Other
257 stars 47 forks source link

Browser title fixed to "Speed Dial" when specifying user-data-dir in options #77

Open pbi-qfs opened 4 years ago

pbi-qfs commented 4 years ago

When providing the "user-data-dir" with the Opera Options page loading somehow is buggy - the url-bar remains empty and the window title always stays at "Speed Dial" and does not synchronize with the title of the loaded page. In addition, the browser is crashing quickly during test.

OperaOptions options = new OperaOptions();
options.addArguments("user-data-dir=/tmp/operaProfile");
WebDriver driver = new OperaDriver(options);
driver.get("http://www.example.com");

With profile specified:

With profile

Without profile specified (expected output):

Without profile

Opera: 66.0.3515.27 OperaDriver: 79.0.3945.79

Reproducable on Windows, macOs and Linux

pbi-qfs commented 4 years ago

Seems to be related to the "chrome://startpageshared" url which somehow is automatically used as first page as soon as a user-data-dir is provided:

[1579522137.169][INFO]: Launching Opera: /Applications/Opera.app/Contents/MacOS/Opera --allow-elevated-browser --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-hang-monitor --disable-popup-blocking --disable-presto-profile-migration --disable-prompt-on-repost --disable-sync --disable-update --disable-usage-statistics-question --enable-automation --enable-blink-features=ShadowDOMV0 --enable-logging --load-extension=/var/folders/j3/glwdgbj17jl3l1k1ps2tb34m000172/T/.Opera.xZ9a9Z/internal --log-level=0 --no-default-browser-check --no-first-run --password-store=basic --ran-launcher --remote-debugging-port=0 --test-type=webdriver --use-mock-keychain --user-data-dir=/tmp/operaProfile

DevTools listening on ws://127.0.0.1:53780/devtools/browser/e4c4f2fd-48b0-4e54-b633-bfa0de092977
[1579522137.420][DEBUG]: DevTools HTTP Request: http://localhost:53780/json/version
[1579522137.531][DEBUG]: DevTools HTTP Response: {
   "Browser": "OPR/66.0.3515.36",
   "Protocol-Version": "1.3",
   "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36 OPR/66.0.3515.36",
   "V8-Version": "7.9.317.32",
   "WebKit-Version": "537.36 (@04f0a055010adab4484f7497fbfdbf312c307f1d)",
   "webSocketDebuggerUrl": "ws://localhost:53780/devtools/browser/e4c4f2fd-48b0-4e54-b633-bfa0de092977"
}

[1579522137.531][DEBUG]: DevTools HTTP Request: http://localhost:53780/json
[1579522138.069][DEBUG]: DevTools HTTP Response: [ {
   "description": "",
   "devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:53780/devtools/page/B2423D2BB0250F8843371387033F75C0",
   "id": "B2423D2BB0250F8843371387033F75C0",
   "title": "",
   "type": "page",
   "url": "chrome://startpageshared/",
   "webSocketDebuggerUrl": "ws://localhost:53780/devtools/page/B2423D2BB0250F8843371387033F75C0"
}, {
   "description": "",
   "devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:53780/devtools/page/89E44EEC60DFDA9FF12D10032801E48F",
   "id": "89E44EEC60DFDA9FF12D10032801E48F",
   "title": "",
   "type": "other",
   "url": "chrome://startpage/",
   "webSocketDebuggerUrl": "ws://localhost:53780/devtools/page/89E44EEC60DFDA9FF12D10032801E48F"
} ]

Consequently, the error can be triggered by visiting this page in between:

OperaOptions options = new OperaOptions();
WebDriver driver = new OperaDriver(options);
driver.get("http://www.example.com"); // Everything is fine
Thread.sleep(1000);
driver.get("chrome://startpageshared"); // Visit "bad" page
Thread.sleep(1000);
driver.get("http://www.example.com"); // Browser frame is stuck
pbi-qfs commented 4 years ago

Any news on the issue? The problem still persists with the new Opera 68

pbi-qfs commented 3 years ago

Same situation with Opera 71 - the operadriver seems to add the data: argument when no --user-data-dir is specified (Then the startpageshared is not called), but the argument is missing in the --user-data-dir case.