Last active
December 6, 2021 15:03
-
-
Save raineorshine/c2d0b687b8c8d67d895937a345f25113 to your computer and use it in GitHub Desktop.
Browserstack verbose test output
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Run yarn test:ios | |
yarn run v1.22.11 | |
$ react-scripts test ./src/e2e/iOS --verbose | |
Setup Test Environment for webdriverio. | |
Using the currently running app on http://localhost:3000 | |
2021-09-13T19:29:20.250Z INFO webdriver: Initiate new session using the WebDriver protocol | |
2021-09-13T19:29:20.251Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:29:20.251Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:29:31.491Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:29:31.492Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/url | |
2021-09-13T19:29:31.492Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:29:33.100Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:29:33.101Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element | |
2021-09-13T19:29:33.101Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:29:33.225Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:29:33.233Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:29:33.233Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element | |
2021-09-13T19:29:33.233Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:29:33.414Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:29:33.419Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:29:33.419Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element/5001/displayed | |
2021-09-13T19:29:33.541Z INFO webdriver: RESULT true | |
2021-09-13T19:29:33.542Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:29:33.542Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/execute/sync | |
2021-09-13T19:29:33.542Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:29:33.635Z INFO webdriver: RESULT true | |
2021-09-13T19:29:33.636Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:29:33.636Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element/5001/rect | |
2021-09-13T19:29:33.816Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:29:33.816Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:29:33.816Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/context | |
2021-09-13T19:29:33.940Z INFO webdriver: RESULT WEBVIEW_34992.1 | |
2021-09-13T19:29:33.940Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:29:33.940Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/context | |
2021-09-13T19:29:33.940Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:29:34.000Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:29:34.001Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element | |
2021-09-13T19:29:34.001Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:29:34.410Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-B088-000000000000', | |
ELEMENT: '10000000-0000-0000-B088-000000000000' | |
} | |
2021-09-13T19:29:34.414Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-B088-000000000000") | |
2021-09-13T19:29:34.414Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element/10000000-0000-0000-B088-000000000000/rect | |
2021-09-13T19:29:34.650Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:29:34.651Z INFO webdriver: COMMAND switchContext("WEBVIEW_34992.1") | |
2021-09-13T19:29:34.651Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/context | |
2021-09-13T19:29:34.651Z INFO webdriver: DATA { name: 'WEBVIEW_34992.1' } | |
2021-09-13T19:29:34.824Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:29:34.824Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/touch/perform | |
2021-09-13T19:29:34.824Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:29:35.059Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:29:35.060Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element | |
2021-09-13T19:29:35.060Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:29:35.335Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:29:35.340Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:29:35.340Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element | |
2021-09-13T19:29:35.340Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:29:35.457Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:29:35.461Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Enter edit mode "}}") | |
2021-09-13T19:29:35.462Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/execute/sync | |
2021-09-13T19:29:35.462Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Enter edit mode "}}' | |
} | |
2021-09-13T19:29:35.463Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:29:35.463Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/window/rect | |
2021-09-13T19:29:35.643Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:29:35.643Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:29:35.643Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/touch/perform | |
2021-09-13T19:29:35.643Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:29:35.654Z INFO webdriver: RESULT {"automation_session":{"name":"Enter edit mode","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:29:36.390Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:29:36.391Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/execute/sync | |
2021-09-13T19:29:36.391Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:29:36.670Z INFO webdriver: RESULT true | |
2021-09-13T19:29:36.671Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:29:36.671Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element | |
2021-09-13T19:29:36.671Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:29:36.797Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:29:36.801Z INFO webdriver: COMMAND sendKeys(<object>) | |
2021-09-13T19:29:36.801Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/keys | |
2021-09-13T19:29:36.801Z INFO webdriver: DATA { value: [ 'foo' ] } | |
2021-09-13T19:29:37.191Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:29:37.192Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/execute/sync | |
2021-09-13T19:29:37.192Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'foo' ] | |
} | |
2021-09-13T19:29:37.311Z INFO webdriver: RESULT true | |
2021-09-13T19:29:37.312Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "foo")]") | |
2021-09-13T19:29:37.312Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element | |
2021-09-13T19:29:37.312Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "foo")]' | |
} | |
2021-09-13T19:29:37.673Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:29:37.678Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:29:37.678Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/context | |
2021-09-13T19:29:37.740Z INFO webdriver: RESULT WEBVIEW_34992.1 | |
2021-09-13T19:29:37.740Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:29:37.740Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/context | |
2021-09-13T19:29:37.740Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:29:37.789Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:29:37.789Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element | |
2021-09-13T19:29:37.789Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:29:38.562Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': 'A7000000-0000-0000-B088-000000000000', | |
ELEMENT: 'A7000000-0000-0000-B088-000000000000' | |
} | |
2021-09-13T19:29:38.566Z INFO webdriver: COMMAND elementClick("A7000000-0000-0000-B088-000000000000") | |
2021-09-13T19:29:38.566Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element/A7000000-0000-0000-B088-000000000000/click | |
2021-09-13T19:29:39.222Z INFO webdriver: COMMAND findElements("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:29:39.222Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/elements | |
2021-09-13T19:29:39.222Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:29:39.742Z INFO webdriver: RESULT [] | |
2021-09-13T19:29:39.743Z INFO webdriver: COMMAND switchContext("WEBVIEW_34992.1") | |
2021-09-13T19:29:39.743Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/context | |
2021-09-13T19:29:39.743Z INFO webdriver: DATA { name: 'WEBVIEW_34992.1' } | |
2021-09-13T19:29:39.885Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:29:39.885Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/execute/sync | |
2021-09-13T19:29:39.885Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'foo' ] | |
} | |
2021-09-13T19:29:39.956Z INFO webdriver: RESULT true | |
2021-09-13T19:29:39.956Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "foo")]") | |
2021-09-13T19:29:39.956Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element | |
2021-09-13T19:29:39.956Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "foo")]' | |
} | |
2021-09-13T19:29:40.052Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:29:40.055Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:29:40.055Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element/5006/rect | |
2021-09-13T19:29:40.157Z INFO webdriver: RESULT { x: 68, y: 79.5, width: 324, height: 26 } | |
2021-09-13T19:29:40.157Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:29:40.157Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/context | |
2021-09-13T19:29:40.212Z INFO webdriver: RESULT WEBVIEW_34992.1 | |
2021-09-13T19:29:40.212Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:29:40.212Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/context | |
2021-09-13T19:29:40.212Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:29:40.292Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:29:40.292Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element | |
2021-09-13T19:29:40.292Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:29:40.725Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-B088-000000000000', | |
ELEMENT: '10000000-0000-0000-B088-000000000000' | |
} | |
2021-09-13T19:29:40.728Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-B088-000000000000") | |
2021-09-13T19:29:40.728Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/element/10000000-0000-0000-B088-000000000000/rect | |
2021-09-13T19:29:40.889Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:29:40.889Z INFO webdriver: COMMAND switchContext("WEBVIEW_34992.1") | |
2021-09-13T19:29:40.889Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/context | |
2021-09-13T19:29:40.889Z INFO webdriver: DATA { name: 'WEBVIEW_34992.1' } | |
2021-09-13T19:29:40.989Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:29:40.989Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/touch/perform | |
2021-09-13T19:29:40.989Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:29:41.307Z INFO webdriver: COMMAND isKeyboardShown() | |
2021-09-13T19:29:41.307Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/appium/device/is_keyboard_shown | |
2021-09-13T19:29:41.525Z INFO webdriver: RESULT true | |
2021-09-13T19:29:41.526Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _window$getSelection3, _window$getSelection4; | |
return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:29:41.526Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766/execute/sync | |
2021-09-13T19:29:41.526Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _window$getSelection3, _window$getSelection4;\n' + | |
'\n' + | |
' return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent;\n' + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:29:41.677Z INFO webdriver: RESULT foo | |
2021-09-13T19:29:41.680Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:29:41.680Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/ffd5711ec1d34006f3f2d9dbda6103c0fe9f5766 | |
2021-09-13T19:29:42.205Z INFO webdriver: RESULT | |
2021-09-13T19:29:42.206Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:29:42.206Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:29:50.229Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:29:50.230Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/url | |
2021-09-13T19:29:50.230Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:29:51.991Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:29:51.991Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:29:51.991Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:29:52.184Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:29:52.187Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:29:52.187Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:29:52.187Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:29:52.592Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:29:52.595Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:29:52.595Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element/5001/displayed | |
2021-09-13T19:29:52.681Z INFO webdriver: RESULT true | |
2021-09-13T19:29:52.681Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:29:52.682Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/execute/sync | |
2021-09-13T19:29:52.682Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:29:53.029Z INFO webdriver: RESULT true | |
2021-09-13T19:29:53.029Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:29:53.029Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element/5001/rect | |
2021-09-13T19:29:53.135Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:29:53.136Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:29:53.136Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/context | |
2021-09-13T19:29:53.215Z INFO webdriver: RESULT WEBVIEW_11698.1 | |
2021-09-13T19:29:53.216Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:29:53.216Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/context | |
2021-09-13T19:29:53.216Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:29:53.306Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:29:53.306Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:29:53.306Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:29:53.740Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-B22D-000000000000', | |
ELEMENT: '10000000-0000-0000-B22D-000000000000' | |
} | |
2021-09-13T19:29:53.744Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-B22D-000000000000") | |
2021-09-13T19:29:53.744Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element/10000000-0000-0000-B22D-000000000000/rect | |
2021-09-13T19:29:53.884Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:29:53.884Z INFO webdriver: COMMAND switchContext("WEBVIEW_11698.1") | |
2021-09-13T19:29:53.884Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/context | |
2021-09-13T19:29:53.885Z INFO webdriver: DATA { name: 'WEBVIEW_11698.1' } | |
2021-09-13T19:29:54.994Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:29:54.994Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/touch/perform | |
2021-09-13T19:29:54.994Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:29:55.410Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:29:55.410Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:29:55.410Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:29:55.583Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:29:55.586Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:29:55.586Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:29:55.586Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:29:55.673Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:29:55.676Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Preserve Editing: true"}}") | |
2021-09-13T19:29:55.676Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/execute/sync | |
2021-09-13T19:29:55.676Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Preserve Editing: true"}}' | |
} | |
2021-09-13T19:29:55.677Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:29:55.677Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/window/rect | |
2021-09-13T19:29:55.838Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:29:55.839Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:29:55.839Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/touch/perform | |
2021-09-13T19:29:55.839Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:29:55.861Z INFO webdriver: RESULT {"automation_session":{"name":"Preserve Editing: true","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"729c0a628cbb32b89535566c0642cb95bc394199","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:29:56.656Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:29:56.657Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/execute/sync | |
2021-09-13T19:29:56.657Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:29:56.923Z INFO webdriver: RESULT true | |
2021-09-13T19:29:56.924Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:29:56.924Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:29:56.924Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:29:57.576Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:29:57.578Z INFO webdriver: COMMAND sendKeys(<object>) | |
2021-09-13T19:29:57.579Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/keys | |
2021-09-13T19:29:57.579Z INFO webdriver: DATA { value: [ 'foo' ] } | |
2021-09-13T19:29:58.029Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:29:58.029Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/execute/sync | |
2021-09-13T19:29:58.029Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'foo' ] | |
} | |
2021-09-13T19:29:58.068Z INFO webdriver: RESULT true | |
2021-09-13T19:29:58.069Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "foo")]") | |
2021-09-13T19:29:58.069Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:29:58.069Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "foo")]' | |
} | |
2021-09-13T19:29:58.272Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:29:58.277Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:29:58.278Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/window/rect | |
2021-09-13T19:29:58.537Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:29:58.537Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:29:58.538Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/touch/perform | |
2021-09-13T19:29:58.538Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:29:59.498Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:29:59.498Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/execute/sync | |
2021-09-13T19:29:59.498Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:29:59.599Z INFO webdriver: RESULT true | |
2021-09-13T19:29:59.599Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:29:59.599Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:29:59.599Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:29:59.670Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:29:59.674Z INFO webdriver: COMMAND sendKeys(<object>) | |
2021-09-13T19:29:59.674Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/keys | |
2021-09-13T19:29:59.674Z INFO webdriver: DATA { value: [ 'bar' ] } | |
2021-09-13T19:30:00.277Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:00.277Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/execute/sync | |
2021-09-13T19:30:00.278Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'bar' ] | |
} | |
2021-09-13T19:30:00.391Z INFO webdriver: RESULT true | |
2021-09-13T19:30:00.391Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "bar")]") | |
2021-09-13T19:30:00.391Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:30:00.391Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "bar")]' | |
} | |
2021-09-13T19:30:00.697Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5007', ELEMENT: '5007' } | |
2021-09-13T19:30:00.703Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "foo")]") | |
2021-09-13T19:30:00.703Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:30:00.703Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "foo")]' | |
} | |
2021-09-13T19:30:00.843Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5008', ELEMENT: '5008' } | |
2021-09-13T19:30:00.849Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:30:00.849Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element/5008/rect | |
2021-09-13T19:30:00.910Z INFO webdriver: RESULT { x: 69.84375, y: 79.5, width: 324, height: 26 } | |
2021-09-13T19:30:00.910Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:30:00.910Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/context | |
2021-09-13T19:30:00.963Z INFO webdriver: RESULT WEBVIEW_11698.1 | |
2021-09-13T19:30:00.963Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:30:00.963Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/context | |
2021-09-13T19:30:00.963Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:30:00.998Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:30:00.998Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element | |
2021-09-13T19:30:00.998Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:30:01.543Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-B22D-000000000000', | |
ELEMENT: '10000000-0000-0000-B22D-000000000000' | |
} | |
2021-09-13T19:30:01.548Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-B22D-000000000000") | |
2021-09-13T19:30:01.548Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/element/10000000-0000-0000-B22D-000000000000/rect | |
2021-09-13T19:30:01.727Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:30:01.727Z INFO webdriver: COMMAND switchContext("WEBVIEW_11698.1") | |
2021-09-13T19:30:01.727Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/context | |
2021-09-13T19:30:01.727Z INFO webdriver: DATA { name: 'WEBVIEW_11698.1' } | |
2021-09-13T19:30:01.821Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:01.822Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/touch/perform | |
2021-09-13T19:30:01.822Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:30:02.170Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _document$querySelect; | |
return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:02.171Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/execute/sync | |
2021-09-13T19:30:02.171Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _document$querySelect;\n' + | |
'\n' + | |
" return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML;\n" + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:30:02.290Z INFO webdriver: RESULT foo | |
2021-09-13T19:30:02.290Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _window$getSelection3, _window$getSelection4; | |
return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:02.291Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199/execute/sync | |
2021-09-13T19:30:02.291Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _window$getSelection3, _window$getSelection4;\n' + | |
'\n' + | |
' return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent;\n' + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:30:02.420Z INFO webdriver: RESULT foo | |
2021-09-13T19:30:02.421Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:30:02.421Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/729c0a628cbb32b89535566c0642cb95bc394199 | |
2021-09-13T19:30:03.420Z INFO webdriver: RESULT | |
2021-09-13T19:30:03.421Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:30:03.421Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:30:13.120Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:30:13.121Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/url | |
2021-09-13T19:30:13.121Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:30:14.723Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:30:14.723Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:14.723Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:30:14.947Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:30:14.952Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:30:14.952Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:14.952Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:30:15.074Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:30:15.083Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:30:15.084Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element/5001/displayed | |
2021-09-13T19:30:15.207Z INFO webdriver: RESULT true | |
2021-09-13T19:30:15.207Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:30:15.209Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/execute/sync | |
2021-09-13T19:30:15.209Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:30:15.276Z INFO webdriver: RESULT true | |
2021-09-13T19:30:15.276Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:30:15.276Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element/5001/rect | |
2021-09-13T19:30:15.350Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:30:15.350Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:30:15.351Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/context | |
2021-09-13T19:30:15.415Z INFO webdriver: RESULT WEBVIEW_2379.1 | |
2021-09-13T19:30:15.415Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:30:15.415Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/context | |
2021-09-13T19:30:15.415Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:30:15.460Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:30:15.460Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:15.460Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:30:16.145Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-4B09-000000000000', | |
ELEMENT: '10000000-0000-0000-4B09-000000000000' | |
} | |
2021-09-13T19:30:16.150Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-4B09-000000000000") | |
2021-09-13T19:30:16.150Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element/10000000-0000-0000-4B09-000000000000/rect | |
2021-09-13T19:30:16.306Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:30:16.306Z INFO webdriver: COMMAND switchContext("WEBVIEW_2379.1") | |
2021-09-13T19:30:16.306Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/context | |
2021-09-13T19:30:16.306Z INFO webdriver: DATA { name: 'WEBVIEW_2379.1' } | |
2021-09-13T19:30:16.691Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:16.691Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/touch/perform | |
2021-09-13T19:30:16.691Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:30:17.159Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:30:17.159Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:17.159Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:30:17.259Z INFO webdriver: RESULT { | |
message: 'An element could not be located on the page using the given search parameters.' | |
} | |
2021-09-13T19:30:17.659Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:30:17.660Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:17.660Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:30:17.782Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:30:17.786Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:30:17.786Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:17.786Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:30:17.879Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:30:17.884Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Preserve Editing: false"}}") | |
2021-09-13T19:30:17.885Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/execute/sync | |
2021-09-13T19:30:17.885Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Preserve Editing: false"}}' | |
} | |
2021-09-13T19:30:17.886Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:30:17.886Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/window/rect | |
2021-09-13T19:30:18.018Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:30:18.018Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:18.018Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/touch/perform | |
2021-09-13T19:30:18.018Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:30:18.114Z INFO webdriver: RESULT {"automation_session":{"name":"Preserve Editing: false","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"20ee58bb9674789d7040ba789afd7aa5fc6e3203","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:30:18.600Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:18.601Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/execute/sync | |
2021-09-13T19:30:18.601Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:30:19.030Z INFO webdriver: RESULT true | |
2021-09-13T19:30:19.030Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:30:19.030Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:19.030Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:30:19.125Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:30:19.129Z INFO webdriver: COMMAND sendKeys(<object>) | |
2021-09-13T19:30:19.129Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/keys | |
2021-09-13T19:30:19.129Z INFO webdriver: DATA { value: [ 'foo' ] } | |
2021-09-13T19:30:19.419Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:19.419Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/execute/sync | |
2021-09-13T19:30:19.419Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'foo' ] | |
} | |
2021-09-13T19:30:19.488Z INFO webdriver: RESULT true | |
2021-09-13T19:30:19.488Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "foo")]") | |
2021-09-13T19:30:19.488Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:19.489Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "foo")]' | |
} | |
2021-09-13T19:30:19.575Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:30:19.579Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:30:19.579Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/window/rect | |
2021-09-13T19:30:19.640Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:30:19.640Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:19.640Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/touch/perform | |
2021-09-13T19:30:19.640Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:30:20.478Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:20.478Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/execute/sync | |
2021-09-13T19:30:20.478Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:30:20.589Z INFO webdriver: RESULT true | |
2021-09-13T19:30:20.589Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:30:20.589Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:20.590Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:30:20.662Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:30:20.666Z INFO webdriver: COMMAND sendKeys(<object>) | |
2021-09-13T19:30:20.666Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/keys | |
2021-09-13T19:30:20.666Z INFO webdriver: DATA { value: [ 'bar' ] } | |
2021-09-13T19:30:20.968Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:20.968Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/execute/sync | |
2021-09-13T19:30:20.968Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'bar' ] | |
} | |
2021-09-13T19:30:21.049Z INFO webdriver: RESULT true | |
2021-09-13T19:30:21.049Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "bar")]") | |
2021-09-13T19:30:21.049Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:21.049Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "bar")]' | |
} | |
2021-09-13T19:30:21.232Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5007', ELEMENT: '5007' } | |
2021-09-13T19:30:21.237Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:30:21.237Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/context | |
2021-09-13T19:30:21.276Z INFO webdriver: RESULT WEBVIEW_2379.1 | |
2021-09-13T19:30:21.276Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:30:21.277Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/context | |
2021-09-13T19:30:21.277Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:30:21.309Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:30:21.309Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:21.309Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:30:21.889Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': 'A7000000-0000-0000-4B09-000000000000', | |
ELEMENT: 'A7000000-0000-0000-4B09-000000000000' | |
} | |
2021-09-13T19:30:21.892Z INFO webdriver: COMMAND elementClick("A7000000-0000-0000-4B09-000000000000") | |
2021-09-13T19:30:21.892Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element/A7000000-0000-0000-4B09-000000000000/click | |
2021-09-13T19:30:22.348Z INFO webdriver: COMMAND findElements("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:30:22.348Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/elements | |
2021-09-13T19:30:22.348Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:30:22.796Z INFO webdriver: RESULT [ | |
{ | |
'element-6066-11e4-a52e-4f735466cecf': 'A7000000-0000-0000-4B09-000000000000', | |
ELEMENT: 'A7000000-0000-0000-4B09-000000000000' | |
} | |
] | |
2021-09-13T19:30:22.849Z INFO webdriver: COMMAND findElements("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:30:22.849Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/elements | |
2021-09-13T19:30:22.849Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:30:23.085Z INFO webdriver: RESULT [] | |
2021-09-13T19:30:23.086Z INFO webdriver: COMMAND switchContext("WEBVIEW_2379.1") | |
2021-09-13T19:30:23.087Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/context | |
2021-09-13T19:30:23.087Z INFO webdriver: DATA { name: 'WEBVIEW_2379.1' } | |
2021-09-13T19:30:23.214Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:23.215Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/execute/sync | |
2021-09-13T19:30:23.215Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'foo' ] | |
} | |
2021-09-13T19:30:23.410Z INFO webdriver: RESULT true | |
2021-09-13T19:30:23.411Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "foo")]") | |
2021-09-13T19:30:23.411Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:23.411Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "foo")]' | |
} | |
2021-09-13T19:30:23.697Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5008', ELEMENT: '5008' } | |
2021-09-13T19:30:23.701Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:30:23.701Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element/5008/rect | |
2021-09-13T19:30:23.791Z INFO webdriver: RESULT { x: 69.84375, y: 79.5, width: 324, height: 26 } | |
2021-09-13T19:30:23.791Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:30:23.791Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/context | |
2021-09-13T19:30:23.816Z INFO webdriver: RESULT WEBVIEW_2379.1 | |
2021-09-13T19:30:23.817Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:30:23.817Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/context | |
2021-09-13T19:30:23.817Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:30:23.846Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:30:23.846Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element | |
2021-09-13T19:30:23.846Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:30:24.156Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-4B09-000000000000', | |
ELEMENT: '10000000-0000-0000-4B09-000000000000' | |
} | |
2021-09-13T19:30:24.160Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-4B09-000000000000") | |
2021-09-13T19:30:24.160Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/element/10000000-0000-0000-4B09-000000000000/rect | |
2021-09-13T19:30:24.274Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:30:24.274Z INFO webdriver: COMMAND switchContext("WEBVIEW_2379.1") | |
2021-09-13T19:30:24.274Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/context | |
2021-09-13T19:30:24.274Z INFO webdriver: DATA { name: 'WEBVIEW_2379.1' } | |
2021-09-13T19:30:24.352Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:24.353Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/touch/perform | |
2021-09-13T19:30:24.353Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:30:24.651Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _window$getSelection3, _window$getSelection4; | |
return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:24.651Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203/execute/sync | |
2021-09-13T19:30:24.651Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _window$getSelection3, _window$getSelection4;\n' + | |
'\n' + | |
' return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent;\n' + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:30:24.896Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:30:24.896Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/20ee58bb9674789d7040ba789afd7aa5fc6e3203 | |
2021-09-13T19:30:25.690Z INFO webdriver: RESULT | |
2021-09-13T19:30:25.690Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:30:25.690Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:30:34.105Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:30:34.105Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/url | |
2021-09-13T19:30:34.105Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:30:35.780Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:30:35.780Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:35.780Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:30:35.913Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:30:35.916Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:30:35.916Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:35.916Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:30:36.083Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:30:36.086Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:30:36.086Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element/5001/displayed | |
2021-09-13T19:30:36.148Z INFO webdriver: RESULT true | |
2021-09-13T19:30:36.148Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:30:36.148Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/execute/sync | |
2021-09-13T19:30:36.148Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:30:36.308Z INFO webdriver: RESULT true | |
2021-09-13T19:30:36.308Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:30:36.308Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element/5001/rect | |
2021-09-13T19:30:36.376Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:30:36.377Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:30:36.377Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/context | |
2021-09-13T19:30:36.407Z INFO webdriver: RESULT WEBVIEW_15020.1 | |
2021-09-13T19:30:36.407Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:30:36.407Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/context | |
2021-09-13T19:30:36.407Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:30:36.437Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:30:36.437Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:36.437Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:30:36.777Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-AC3A-000000000000', | |
ELEMENT: '10000000-0000-0000-AC3A-000000000000' | |
} | |
2021-09-13T19:30:36.782Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-AC3A-000000000000") | |
2021-09-13T19:30:36.782Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element/10000000-0000-0000-AC3A-000000000000/rect | |
2021-09-13T19:30:36.912Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:30:36.912Z INFO webdriver: COMMAND switchContext("WEBVIEW_15020.1") | |
2021-09-13T19:30:36.912Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/context | |
2021-09-13T19:30:36.912Z INFO webdriver: DATA { name: 'WEBVIEW_15020.1' } | |
2021-09-13T19:30:37.002Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:37.002Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/touch/perform | |
2021-09-13T19:30:37.002Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:30:37.354Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:30:37.354Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:37.354Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:30:37.428Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:30:37.434Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:30:37.434Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:37.434Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:30:37.529Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:30:37.534Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Tap hidden root thought"}}") | |
2021-09-13T19:30:37.534Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/execute/sync | |
2021-09-13T19:30:37.534Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Tap hidden root thought"}}' | |
} | |
2021-09-13T19:30:37.535Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:30:37.535Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/window/rect | |
2021-09-13T19:30:37.588Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:30:37.588Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:37.589Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/touch/perform | |
2021-09-13T19:30:37.589Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:30:37.772Z INFO webdriver: RESULT {"automation_session":{"name":"Tap hidden root thought","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"3ea59c80f9bd3e24784f6625f854ef9b913aacec","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:30:38.182Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:38.183Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/execute/sync | |
2021-09-13T19:30:38.183Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:30:38.328Z INFO webdriver: RESULT true | |
2021-09-13T19:30:38.328Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:30:38.329Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:38.329Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:30:38.428Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:30:38.433Z INFO webdriver: COMMAND executeScript("return ((_pathUnranked, _text) => { | |
const testHelpers = em.testHelpers; | |
testHelpers.importToContext(_pathUnranked, _text); | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:38.433Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/execute/sync | |
2021-09-13T19:30:38.433Z INFO webdriver: DATA { | |
script: 'return ((_pathUnranked, _text) => {\n' + | |
' const testHelpers = em.testHelpers;\n' + | |
' testHelpers.importToContext(_pathUnranked, _text);\n' + | |
' }).apply(null, arguments)', | |
args: [ [ '' ], '\n - a\n - b\n - c\n - d' ] | |
} | |
2021-09-13T19:30:38.564Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "a")]") | |
2021-09-13T19:30:38.564Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:38.564Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "a")]' | |
} | |
2021-09-13T19:30:38.648Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:30:38.653Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:30:38.653Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element/5005/click | |
2021-09-13T19:30:38.796Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "b")]") | |
2021-09-13T19:30:38.797Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:38.797Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "b")]' | |
} | |
2021-09-13T19:30:38.884Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:30:38.888Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:30:38.888Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element/5006/click | |
2021-09-13T19:30:39.042Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "c")]") | |
2021-09-13T19:30:39.042Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:39.042Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "c")]' | |
} | |
2021-09-13T19:30:39.133Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5007', ELEMENT: '5007' } | |
2021-09-13T19:30:39.136Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:30:39.136Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element/5007/click | |
2021-09-13T19:30:39.255Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:39.255Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/execute/sync | |
2021-09-13T19:30:39.255Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'd' ] | |
} | |
2021-09-13T19:30:39.322Z INFO webdriver: RESULT true | |
2021-09-13T19:30:39.322Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "d")]") | |
2021-09-13T19:30:39.322Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:39.322Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "d")]' | |
} | |
2021-09-13T19:30:39.425Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5008', ELEMENT: '5008' } | |
2021-09-13T19:30:39.429Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:30:39.430Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element/5008/rect | |
2021-09-13T19:30:39.499Z INFO webdriver: RESULT { x: 50.799339294433594, y: 177.875, width: 324, height: 26 } | |
2021-09-13T19:30:39.499Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:30:39.500Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/context | |
2021-09-13T19:30:39.554Z INFO webdriver: RESULT WEBVIEW_15020.1 | |
2021-09-13T19:30:39.555Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:30:39.555Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/context | |
2021-09-13T19:30:39.555Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:30:39.631Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:30:39.631Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element | |
2021-09-13T19:30:39.631Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:30:40.145Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-AC3A-000000000000', | |
ELEMENT: '10000000-0000-0000-AC3A-000000000000' | |
} | |
2021-09-13T19:30:40.148Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-AC3A-000000000000") | |
2021-09-13T19:30:40.148Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/element/10000000-0000-0000-AC3A-000000000000/rect | |
2021-09-13T19:30:40.276Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:30:40.276Z INFO webdriver: COMMAND switchContext("WEBVIEW_15020.1") | |
2021-09-13T19:30:40.276Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/context | |
2021-09-13T19:30:40.276Z INFO webdriver: DATA { name: 'WEBVIEW_15020.1' } | |
2021-09-13T19:30:40.444Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:40.445Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/touch/perform | |
2021-09-13T19:30:40.445Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:30:40.792Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _document$querySelect; | |
return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:40.793Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/execute/sync | |
2021-09-13T19:30:40.793Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _document$querySelect;\n' + | |
'\n' + | |
" return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML;\n" + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:30:40.873Z INFO webdriver: RESULT b | |
2021-09-13T19:30:40.873Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _document$querySelect; | |
return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:40.873Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec/execute/sync | |
2021-09-13T19:30:40.873Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _document$querySelect;\n' + | |
'\n' + | |
" return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML;\n" + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:30:40.933Z INFO webdriver: RESULT b | |
2021-09-13T19:30:40.935Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:30:40.935Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/3ea59c80f9bd3e24784f6625f854ef9b913aacec | |
2021-09-13T19:30:41.704Z INFO webdriver: RESULT | |
2021-09-13T19:30:41.704Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:30:41.704Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:30:49.818Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:30:49.818Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/url | |
2021-09-13T19:30:49.818Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:30:51.459Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:30:51.459Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:51.459Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:30:51.627Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:30:51.630Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:30:51.630Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:51.630Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:30:51.729Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:30:51.734Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:30:51.734Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element/5001/displayed | |
2021-09-13T19:30:51.935Z INFO webdriver: RESULT true | |
2021-09-13T19:30:51.935Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:30:51.935Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/execute/sync | |
2021-09-13T19:30:51.935Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:30:52.047Z INFO webdriver: RESULT true | |
2021-09-13T19:30:52.047Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:30:52.047Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element/5001/rect | |
2021-09-13T19:30:52.194Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:30:52.194Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:30:52.194Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/context | |
2021-09-13T19:30:52.236Z INFO webdriver: RESULT WEBVIEW_18742.1 | |
2021-09-13T19:30:52.236Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:30:52.237Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/context | |
2021-09-13T19:30:52.237Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:30:52.313Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:30:52.313Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:52.313Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:30:52.616Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-3649-000000000000', | |
ELEMENT: '10000000-0000-0000-3649-000000000000' | |
} | |
2021-09-13T19:30:52.621Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-3649-000000000000") | |
2021-09-13T19:30:52.621Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element/10000000-0000-0000-3649-000000000000/rect | |
2021-09-13T19:30:52.793Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:30:52.794Z INFO webdriver: COMMAND switchContext("WEBVIEW_18742.1") | |
2021-09-13T19:30:52.794Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/context | |
2021-09-13T19:30:52.794Z INFO webdriver: DATA { name: 'WEBVIEW_18742.1' } | |
2021-09-13T19:30:52.907Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:52.907Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/touch/perform | |
2021-09-13T19:30:52.907Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:30:53.204Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:30:53.204Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:53.204Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:30:53.319Z INFO webdriver: RESULT { | |
message: 'An element could not be located on the page using the given search parameters.' | |
} | |
2021-09-13T19:30:53.704Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:30:53.705Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:53.705Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:30:53.820Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:30:53.824Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:30:53.825Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:53.825Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:30:54.080Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:30:54.085Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Tap hidden uncle"}}") | |
2021-09-13T19:30:54.085Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/execute/sync | |
2021-09-13T19:30:54.086Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Tap hidden uncle"}}' | |
} | |
2021-09-13T19:30:54.086Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:30:54.087Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/window/rect | |
2021-09-13T19:30:54.132Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:30:54.132Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:54.133Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/touch/perform | |
2021-09-13T19:30:54.133Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:30:54.283Z INFO webdriver: RESULT {"automation_session":{"name":"Tap hidden uncle","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"f68feeb05c895070aabf1d251f4f0cd3ab13c22d","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:30:54.701Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:54.701Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/execute/sync | |
2021-09-13T19:30:54.701Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:30:54.884Z INFO webdriver: RESULT true | |
2021-09-13T19:30:54.885Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:30:54.885Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:54.885Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:30:54.945Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:30:54.949Z INFO webdriver: COMMAND executeScript("return ((_pathUnranked, _text) => { | |
const testHelpers = em.testHelpers; | |
testHelpers.importToContext(_pathUnranked, _text); | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:54.950Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/execute/sync | |
2021-09-13T19:30:54.950Z INFO webdriver: DATA { | |
script: 'return ((_pathUnranked, _text) => {\n' + | |
' const testHelpers = em.testHelpers;\n' + | |
' testHelpers.importToContext(_pathUnranked, _text);\n' + | |
' }).apply(null, arguments)', | |
args: [ [ '' ], '\n - a\n - b\n - c\n - d' ] | |
} | |
2021-09-13T19:30:55.049Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "a")]") | |
2021-09-13T19:30:55.049Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:55.049Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "a")]' | |
} | |
2021-09-13T19:30:55.255Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:30:55.259Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:30:55.259Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element/5005/click | |
2021-09-13T19:30:55.362Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "b")]") | |
2021-09-13T19:30:55.362Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:55.363Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "b")]' | |
} | |
2021-09-13T19:30:55.444Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:30:55.448Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:30:55.448Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element/5006/click | |
2021-09-13T19:30:55.549Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "c")]") | |
2021-09-13T19:30:55.549Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:55.549Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "c")]' | |
} | |
2021-09-13T19:30:55.628Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5007', ELEMENT: '5007' } | |
2021-09-13T19:30:55.632Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:30:55.633Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element/5007/click | |
2021-09-13T19:30:55.769Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:55.770Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/execute/sync | |
2021-09-13T19:30:55.770Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'd' ] | |
} | |
2021-09-13T19:30:55.834Z INFO webdriver: RESULT true | |
2021-09-13T19:30:55.835Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "d")]") | |
2021-09-13T19:30:55.835Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:55.835Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "d")]' | |
} | |
2021-09-13T19:30:55.938Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5008', ELEMENT: '5008' } | |
2021-09-13T19:30:55.942Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:30:55.942Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element/5008/rect | |
2021-09-13T19:30:56.140Z INFO webdriver: RESULT { x: 70.024658203125, y: 174.28125, width: 302, height: 26 } | |
2021-09-13T19:30:56.140Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:30:56.140Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/context | |
2021-09-13T19:30:56.220Z INFO webdriver: RESULT WEBVIEW_18742.1 | |
2021-09-13T19:30:56.220Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:30:56.220Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/context | |
2021-09-13T19:30:56.220Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:30:56.263Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:30:56.263Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element | |
2021-09-13T19:30:56.263Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:30:56.733Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-3649-000000000000', | |
ELEMENT: '10000000-0000-0000-3649-000000000000' | |
} | |
2021-09-13T19:30:56.737Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-3649-000000000000") | |
2021-09-13T19:30:56.737Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/element/10000000-0000-0000-3649-000000000000/rect | |
2021-09-13T19:30:56.914Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:30:56.914Z INFO webdriver: COMMAND switchContext("WEBVIEW_18742.1") | |
2021-09-13T19:30:56.914Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/context | |
2021-09-13T19:30:56.914Z INFO webdriver: DATA { name: 'WEBVIEW_18742.1' } | |
2021-09-13T19:30:57.011Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:30:57.011Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/touch/perform | |
2021-09-13T19:30:57.011Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:30:57.364Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _document$querySelect; | |
return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:57.364Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/execute/sync | |
2021-09-13T19:30:57.364Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _document$querySelect;\n' + | |
'\n' + | |
" return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML;\n" + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:30:57.432Z INFO webdriver: RESULT d | |
2021-09-13T19:30:57.432Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _window$getSelection3, _window$getSelection4; | |
return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:30:57.432Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d/execute/sync | |
2021-09-13T19:30:57.432Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _window$getSelection3, _window$getSelection4;\n' + | |
'\n' + | |
' return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent;\n' + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:30:57.513Z INFO webdriver: RESULT d | |
2021-09-13T19:30:57.514Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:30:57.514Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/f68feeb05c895070aabf1d251f4f0cd3ab13c22d | |
2021-09-13T19:30:58.138Z INFO webdriver: RESULT | |
2021-09-13T19:30:58.139Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:30:58.139Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:31:06.699Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:31:06.699Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/url | |
2021-09-13T19:31:06.699Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:31:08.390Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:31:08.390Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element | |
2021-09-13T19:31:08.390Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:31:09.637Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:31:09.641Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:31:09.641Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element | |
2021-09-13T19:31:09.641Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:31:09.725Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:31:09.730Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:31:09.730Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element/5001/displayed | |
2021-09-13T19:31:09.841Z INFO webdriver: RESULT true | |
2021-09-13T19:31:09.841Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:31:09.842Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/execute/sync | |
2021-09-13T19:31:09.842Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:31:10.045Z INFO webdriver: RESULT true | |
2021-09-13T19:31:10.046Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:31:10.046Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element/5001/rect | |
2021-09-13T19:31:10.265Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:31:10.265Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:31:10.265Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/context | |
2021-09-13T19:31:10.295Z INFO webdriver: RESULT WEBVIEW_65318.1 | |
2021-09-13T19:31:10.296Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:31:10.296Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/context | |
2021-09-13T19:31:10.296Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:31:10.377Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:31:10.377Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element | |
2021-09-13T19:31:10.377Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:31:10.773Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-26FF-000000000000', | |
ELEMENT: '10000000-0000-0000-26FF-000000000000' | |
} | |
2021-09-13T19:31:10.779Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-26FF-000000000000") | |
2021-09-13T19:31:10.780Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element/10000000-0000-0000-26FF-000000000000/rect | |
2021-09-13T19:31:10.919Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:31:10.920Z INFO webdriver: COMMAND switchContext("WEBVIEW_65318.1") | |
2021-09-13T19:31:10.920Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/context | |
2021-09-13T19:31:10.920Z INFO webdriver: DATA { name: 'WEBVIEW_65318.1' } | |
2021-09-13T19:31:11.002Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:31:11.003Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/touch/perform | |
2021-09-13T19:31:11.003Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:31:11.317Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:31:11.317Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element | |
2021-09-13T19:31:11.317Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:31:11.479Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:31:11.483Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:31:11.483Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element | |
2021-09-13T19:31:11.483Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:31:11.584Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:31:11.589Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Tap empty content while keyboard up"}}") | |
2021-09-13T19:31:11.589Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/execute/sync | |
2021-09-13T19:31:11.589Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Tap empty content while keyboard up"}}' | |
} | |
2021-09-13T19:31:11.590Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:31:11.590Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/window/rect | |
2021-09-13T19:31:11.757Z INFO webdriver: RESULT {"automation_session":{"name":"Tap empty content while keyboard up","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"11c7aae0a9f109b40906a43ac9d7a173a791059e","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:31:11.801Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:31:11.801Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:31:11.801Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/touch/perform | |
2021-09-13T19:31:11.801Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:31:12.407Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:12.407Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/execute/sync | |
2021-09-13T19:31:12.407Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:31:12.566Z INFO webdriver: RESULT true | |
2021-09-13T19:31:12.566Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:31:12.567Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element | |
2021-09-13T19:31:12.567Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:31:12.811Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:31:12.816Z INFO webdriver: COMMAND executeScript("return ((_pathUnranked, _text) => { | |
const testHelpers = em.testHelpers; | |
testHelpers.importToContext(_pathUnranked, _text); | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:12.816Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/execute/sync | |
2021-09-13T19:31:12.816Z INFO webdriver: DATA { | |
script: 'return ((_pathUnranked, _text) => {\n' + | |
' const testHelpers = em.testHelpers;\n' + | |
' testHelpers.importToContext(_pathUnranked, _text);\n' + | |
' }).apply(null, arguments)', | |
args: [ [ '' ], '\n - a\n - b\n - c\n - d' ] | |
} | |
2021-09-13T19:31:13.101Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "b")]") | |
2021-09-13T19:31:13.101Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element | |
2021-09-13T19:31:13.101Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "b")]' | |
} | |
2021-09-13T19:31:13.163Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:31:13.168Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:31:13.168Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element/5005/click | |
2021-09-13T19:31:13.380Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "c")]") | |
2021-09-13T19:31:13.380Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element | |
2021-09-13T19:31:13.380Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "c")]' | |
} | |
2021-09-13T19:31:13.496Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:31:13.501Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:31:13.501Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element/5006/click | |
2021-09-13T19:31:13.654Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:13.654Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/execute/sync | |
2021-09-13T19:31:13.654Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'd' ] | |
} | |
2021-09-13T19:31:13.722Z INFO webdriver: RESULT true | |
2021-09-13T19:31:13.722Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "d")]") | |
2021-09-13T19:31:13.722Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element | |
2021-09-13T19:31:13.722Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "d")]' | |
} | |
2021-09-13T19:31:13.822Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5007', ELEMENT: '5007' } | |
2021-09-13T19:31:13.825Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:31:13.825Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element/5007/rect | |
2021-09-13T19:31:14.007Z INFO webdriver: RESULT { x: 70.05873107910156, y: 174.28125, width: 302, height: 26 } | |
2021-09-13T19:31:14.007Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:31:14.007Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/context | |
2021-09-13T19:31:14.275Z INFO webdriver: RESULT WEBVIEW_65318.1 | |
2021-09-13T19:31:14.275Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:31:14.275Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/context | |
2021-09-13T19:31:14.275Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:31:14.306Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:31:14.306Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element | |
2021-09-13T19:31:14.306Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:31:15.041Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-26FF-000000000000', | |
ELEMENT: '10000000-0000-0000-26FF-000000000000' | |
} | |
2021-09-13T19:31:15.044Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-26FF-000000000000") | |
2021-09-13T19:31:15.044Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/element/10000000-0000-0000-26FF-000000000000/rect | |
2021-09-13T19:31:15.311Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:31:15.312Z INFO webdriver: COMMAND switchContext("WEBVIEW_65318.1") | |
2021-09-13T19:31:15.312Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/context | |
2021-09-13T19:31:15.312Z INFO webdriver: DATA { name: 'WEBVIEW_65318.1' } | |
2021-09-13T19:31:15.410Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:31:15.411Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/touch/perform | |
2021-09-13T19:31:15.411Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:31:15.855Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _document$querySelect; | |
return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:15.855Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/execute/sync | |
2021-09-13T19:31:15.855Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _document$querySelect;\n' + | |
'\n' + | |
" return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML;\n" + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:31:15.957Z INFO webdriver: RESULT b | |
2021-09-13T19:31:15.957Z INFO webdriver: COMMAND isKeyboardShown() | |
2021-09-13T19:31:15.957Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/appium/device/is_keyboard_shown | |
2021-09-13T19:31:16.115Z INFO webdriver: RESULT true | |
2021-09-13T19:31:16.115Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _window$getSelection3, _window$getSelection4; | |
return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:16.116Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e/execute/sync | |
2021-09-13T19:31:16.116Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _window$getSelection3, _window$getSelection4;\n' + | |
'\n' + | |
' return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent;\n' + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:31:16.323Z INFO webdriver: RESULT b | |
2021-09-13T19:31:16.324Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:31:16.324Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/11c7aae0a9f109b40906a43ac9d7a173a791059e | |
2021-09-13T19:31:16.981Z INFO webdriver: RESULT | |
2021-09-13T19:31:16.981Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:31:16.981Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:31:25.372Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:31:25.372Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/url | |
2021-09-13T19:31:25.372Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:31:27.003Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:31:27.003Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:27.003Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:31:27.185Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:31:27.190Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:31:27.190Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:27.190Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:31:27.342Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:31:27.347Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:31:27.348Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element/5001/displayed | |
2021-09-13T19:31:27.421Z INFO webdriver: RESULT true | |
2021-09-13T19:31:27.422Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:31:27.422Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/execute/sync | |
2021-09-13T19:31:27.422Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:31:27.489Z INFO webdriver: RESULT true | |
2021-09-13T19:31:27.489Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:31:27.490Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element/5001/rect | |
2021-09-13T19:31:27.577Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:31:27.577Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:31:27.577Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/context | |
2021-09-13T19:31:27.628Z INFO webdriver: RESULT WEBVIEW_15626.1 | |
2021-09-13T19:31:27.628Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:31:27.629Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/context | |
2021-09-13T19:31:27.629Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:31:27.714Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:31:27.714Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:27.714Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:31:28.135Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-0A3D-000000000000', | |
ELEMENT: '10000000-0000-0000-0A3D-000000000000' | |
} | |
2021-09-13T19:31:28.140Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-0A3D-000000000000") | |
2021-09-13T19:31:28.140Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element/10000000-0000-0000-0A3D-000000000000/rect | |
2021-09-13T19:31:28.306Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:31:28.306Z INFO webdriver: COMMAND switchContext("WEBVIEW_15626.1") | |
2021-09-13T19:31:28.306Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/context | |
2021-09-13T19:31:28.306Z INFO webdriver: DATA { name: 'WEBVIEW_15626.1' } | |
2021-09-13T19:31:28.401Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:31:28.401Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/touch/perform | |
2021-09-13T19:31:28.401Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:31:28.741Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:31:28.742Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:28.742Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:31:28.877Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:31:28.881Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:31:28.881Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:28.881Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:31:28.966Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:31:28.970Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Tap empty content while keyboard down"}}") | |
2021-09-13T19:31:28.970Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/execute/sync | |
2021-09-13T19:31:28.970Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Tap empty content while keyboard down"}}' | |
} | |
2021-09-13T19:31:28.971Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:31:28.971Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/window/rect | |
2021-09-13T19:31:29.036Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:31:29.037Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:31:29.037Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/touch/perform | |
2021-09-13T19:31:29.037Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:31:29.238Z INFO webdriver: RESULT {"automation_session":{"name":"Tap empty content while keyboard down","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"ea0377051d9eb293a4eda270ea56b581980b1063","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:31:29.661Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:29.661Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/execute/sync | |
2021-09-13T19:31:29.662Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:31:29.816Z INFO webdriver: RESULT true | |
2021-09-13T19:31:29.817Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:31:29.817Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:29.817Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:31:29.912Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:31:29.916Z INFO webdriver: COMMAND executeScript("return ((_pathUnranked, _text) => { | |
const testHelpers = em.testHelpers; | |
testHelpers.importToContext(_pathUnranked, _text); | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:29.916Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/execute/sync | |
2021-09-13T19:31:29.916Z INFO webdriver: DATA { | |
script: 'return ((_pathUnranked, _text) => {\n' + | |
' const testHelpers = em.testHelpers;\n' + | |
' testHelpers.importToContext(_pathUnranked, _text);\n' + | |
' }).apply(null, arguments)', | |
args: [ [ '' ], '\n - a\n - b\n - c\n - d' ] | |
} | |
2021-09-13T19:31:30.055Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "b")]") | |
2021-09-13T19:31:30.055Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:30.055Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "b")]' | |
} | |
2021-09-13T19:31:30.162Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:31:30.166Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:31:30.166Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element/5005/click | |
2021-09-13T19:31:30.295Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "c")]") | |
2021-09-13T19:31:30.295Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:30.295Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "c")]' | |
} | |
2021-09-13T19:31:30.386Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:31:30.389Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:31:30.390Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element/5006/click | |
2021-09-13T19:31:30.526Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:31:30.527Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/context | |
2021-09-13T19:31:30.671Z INFO webdriver: RESULT WEBVIEW_15626.1 | |
2021-09-13T19:31:30.671Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:31:30.671Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/context | |
2021-09-13T19:31:30.671Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:31:30.793Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:31:30.793Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:30.793Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:31:31.325Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': 'A7000000-0000-0000-0A3D-000000000000', | |
ELEMENT: 'A7000000-0000-0000-0A3D-000000000000' | |
} | |
2021-09-13T19:31:31.329Z INFO webdriver: COMMAND elementClick("A7000000-0000-0000-0A3D-000000000000") | |
2021-09-13T19:31:31.329Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element/A7000000-0000-0000-0A3D-000000000000/click | |
2021-09-13T19:31:31.886Z INFO webdriver: COMMAND findElements("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:31:31.887Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/elements | |
2021-09-13T19:31:31.887Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:31:34.664Z INFO webdriver: RESULT [] | |
2021-09-13T19:31:34.665Z INFO webdriver: COMMAND switchContext("WEBVIEW_15626.1") | |
2021-09-13T19:31:34.665Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/context | |
2021-09-13T19:31:34.665Z INFO webdriver: DATA { name: 'WEBVIEW_15626.1' } | |
2021-09-13T19:31:34.788Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:34.788Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/execute/sync | |
2021-09-13T19:31:34.788Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'd' ] | |
} | |
2021-09-13T19:31:34.833Z INFO webdriver: RESULT true | |
2021-09-13T19:31:34.833Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "d")]") | |
2021-09-13T19:31:34.833Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:34.833Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "d")]' | |
} | |
2021-09-13T19:31:34.931Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5007', ELEMENT: '5007' } | |
2021-09-13T19:31:34.935Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:31:34.935Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element/5007/rect | |
2021-09-13T19:31:35.045Z INFO webdriver: RESULT { x: 67.9937515258789, y: 174.28125, width: 302, height: 26 } | |
2021-09-13T19:31:35.045Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:31:35.045Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/context | |
2021-09-13T19:31:35.099Z INFO webdriver: RESULT WEBVIEW_15626.1 | |
2021-09-13T19:31:35.100Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:31:35.100Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/context | |
2021-09-13T19:31:35.100Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:31:35.136Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:31:35.136Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element | |
2021-09-13T19:31:35.136Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:31:35.647Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-0A3D-000000000000', | |
ELEMENT: '10000000-0000-0000-0A3D-000000000000' | |
} | |
2021-09-13T19:31:35.650Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-0A3D-000000000000") | |
2021-09-13T19:31:35.651Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/element/10000000-0000-0000-0A3D-000000000000/rect | |
2021-09-13T19:31:35.829Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:31:35.829Z INFO webdriver: COMMAND switchContext("WEBVIEW_15626.1") | |
2021-09-13T19:31:35.829Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/context | |
2021-09-13T19:31:35.830Z INFO webdriver: DATA { name: 'WEBVIEW_15626.1' } | |
2021-09-13T19:31:35.931Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:31:35.931Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/touch/perform | |
2021-09-13T19:31:35.931Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:31:36.306Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _document$querySelect; | |
return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:36.306Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/execute/sync | |
2021-09-13T19:31:36.306Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _document$querySelect;\n' + | |
'\n' + | |
" return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML;\n" + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:31:36.364Z INFO webdriver: RESULT b | |
2021-09-13T19:31:36.364Z INFO webdriver: COMMAND isKeyboardShown() | |
2021-09-13T19:31:36.364Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063/appium/device/is_keyboard_shown | |
2021-09-13T19:31:36.526Z INFO webdriver: RESULT false | |
2021-09-13T19:31:36.527Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:31:36.527Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/ea0377051d9eb293a4eda270ea56b581980b1063 | |
2021-09-13T19:31:37.106Z INFO webdriver: RESULT | |
2021-09-13T19:31:37.106Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:31:37.106Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:31:45.491Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:31:45.491Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/url | |
2021-09-13T19:31:45.491Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:31:47.080Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:31:47.080Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:47.080Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:31:47.242Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:31:47.246Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:31:47.247Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:47.247Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:31:47.337Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:31:47.342Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:31:47.342Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element/5001/displayed | |
2021-09-13T19:31:47.439Z INFO webdriver: RESULT true | |
2021-09-13T19:31:47.439Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:31:47.439Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/execute/sync | |
2021-09-13T19:31:47.439Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:31:47.497Z INFO webdriver: RESULT true | |
2021-09-13T19:31:47.497Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:31:47.497Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element/5001/rect | |
2021-09-13T19:31:47.593Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:31:47.593Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:31:47.593Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:47.627Z INFO webdriver: RESULT WEBVIEW_6854.1 | |
2021-09-13T19:31:47.627Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:31:47.627Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:47.627Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:31:47.659Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:31:47.659Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:47.659Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:31:48.078Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-C61A-000000000000', | |
ELEMENT: '10000000-0000-0000-C61A-000000000000' | |
} | |
2021-09-13T19:31:48.083Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-C61A-000000000000") | |
2021-09-13T19:31:48.083Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element/10000000-0000-0000-C61A-000000000000/rect | |
2021-09-13T19:31:48.244Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:31:48.244Z INFO webdriver: COMMAND switchContext("WEBVIEW_6854.1") | |
2021-09-13T19:31:48.244Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:48.244Z INFO webdriver: DATA { name: 'WEBVIEW_6854.1' } | |
2021-09-13T19:31:48.363Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:31:48.363Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/touch/perform | |
2021-09-13T19:31:48.363Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:31:48.726Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:31:48.727Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:48.727Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:31:48.846Z INFO webdriver: RESULT { | |
message: 'An element could not be located on the page using the given search parameters.' | |
} | |
2021-09-13T19:31:49.226Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:31:49.226Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:49.227Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:31:49.304Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:31:49.309Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:31:49.309Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:49.309Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:31:49.376Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:31:49.381Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Swipe over cursor"}}") | |
2021-09-13T19:31:49.381Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/execute/sync | |
2021-09-13T19:31:49.381Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Swipe over cursor"}}' | |
} | |
2021-09-13T19:31:49.382Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:31:49.383Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/window/rect | |
2021-09-13T19:31:49.428Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:31:49.429Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:31:49.429Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/touch/perform | |
2021-09-13T19:31:49.429Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:31:49.581Z INFO webdriver: RESULT {"automation_session":{"name":"Swipe over cursor","duration":null,"os":"ios","os_version":"13.2","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"510e9fc9e0a653b5ecd838c12fa38d61f0fed01b","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:31:50.059Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:50.059Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/execute/sync | |
2021-09-13T19:31:50.059Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:31:50.526Z INFO webdriver: RESULT true | |
2021-09-13T19:31:50.526Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:31:50.526Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:50.526Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:31:50.665Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:31:50.668Z INFO webdriver: COMMAND sendKeys(<object>) | |
2021-09-13T19:31:50.669Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/keys | |
2021-09-13T19:31:50.669Z INFO webdriver: DATA { value: [ 'foo' ] } | |
2021-09-13T19:31:51.044Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:51.044Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/execute/sync | |
2021-09-13T19:31:51.044Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'foo' ] | |
} | |
2021-09-13T19:31:51.100Z INFO webdriver: RESULT true | |
2021-09-13T19:31:51.100Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "foo")]") | |
2021-09-13T19:31:51.100Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:51.100Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "foo")]' | |
} | |
2021-09-13T19:31:51.177Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:31:51.181Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:31:51.182Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:51.339Z INFO webdriver: RESULT WEBVIEW_6854.1 | |
2021-09-13T19:31:51.340Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:31:51.340Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:51.340Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:31:51.385Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:31:51.386Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:51.386Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:31:51.925Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': 'A7000000-0000-0000-C61A-000000000000', | |
ELEMENT: 'A7000000-0000-0000-C61A-000000000000' | |
} | |
2021-09-13T19:31:51.929Z INFO webdriver: COMMAND elementClick("A7000000-0000-0000-C61A-000000000000") | |
2021-09-13T19:31:51.930Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element/A7000000-0000-0000-C61A-000000000000/click | |
2021-09-13T19:31:52.609Z INFO webdriver: COMMAND findElements("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:31:52.609Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/elements | |
2021-09-13T19:31:52.609Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:31:53.157Z INFO webdriver: RESULT [] | |
2021-09-13T19:31:53.158Z INFO webdriver: COMMAND switchContext("WEBVIEW_6854.1") | |
2021-09-13T19:31:53.158Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:53.158Z INFO webdriver: DATA { name: 'WEBVIEW_6854.1' } | |
2021-09-13T19:31:53.265Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:53.265Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/execute/sync | |
2021-09-13T19:31:53.265Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'foo' ] | |
} | |
2021-09-13T19:31:53.325Z INFO webdriver: RESULT true | |
2021-09-13T19:31:53.325Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "foo")]") | |
2021-09-13T19:31:53.325Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:53.325Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "foo")]' | |
} | |
2021-09-13T19:31:53.685Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:31:53.688Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:31:53.688Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:53.717Z INFO webdriver: RESULT WEBVIEW_6854.1 | |
2021-09-13T19:31:53.718Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:31:53.718Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:53.718Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:31:53.750Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="em"]") | |
2021-09-13T19:31:53.751Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:53.751Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeOther[@name="em"]' } | |
2021-09-13T19:31:54.110Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '05000000-0000-0000-CD1A-000000000000', | |
ELEMENT: '05000000-0000-0000-CD1A-000000000000' | |
} | |
2021-09-13T19:31:54.113Z INFO webdriver: COMMAND getElementRect("05000000-0000-0000-CD1A-000000000000") | |
2021-09-13T19:31:54.114Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element/05000000-0000-0000-CD1A-000000000000/rect | |
2021-09-13T19:31:54.246Z INFO webdriver: RESULT { y: 94, x: 0, width: 414, height: 967 } | |
2021-09-13T19:31:54.246Z INFO webdriver: COMMAND switchContext("WEBVIEW_6854.1") | |
2021-09-13T19:31:54.247Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:54.247Z INFO webdriver: DATA { name: 'WEBVIEW_6854.1' } | |
2021-09-13T19:31:54.340Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:31:54.340Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element/5006/rect | |
2021-09-13T19:31:54.458Z INFO webdriver: RESULT { x: 68, y: 79.5, width: 324, height: 26 } | |
2021-09-13T19:31:54.458Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:31:54.458Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/touch/perform | |
2021-09-13T19:31:54.458Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:31:55.000Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:31:55.000Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element/5006/rect | |
2021-09-13T19:31:55.090Z INFO webdriver: RESULT { x: 68, y: 79.5, width: 324, height: 26 } | |
2021-09-13T19:31:55.090Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:31:55.090Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:55.139Z INFO webdriver: RESULT WEBVIEW_6854.1 | |
2021-09-13T19:31:55.140Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:31:55.140Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:55.140Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:31:55.177Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:31:55.177Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element | |
2021-09-13T19:31:55.177Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:31:55.546Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-C61A-000000000000', | |
ELEMENT: '10000000-0000-0000-C61A-000000000000' | |
} | |
2021-09-13T19:31:55.549Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-C61A-000000000000") | |
2021-09-13T19:31:55.549Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/element/10000000-0000-0000-C61A-000000000000/rect | |
2021-09-13T19:31:55.667Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:31:55.667Z INFO webdriver: COMMAND switchContext("WEBVIEW_6854.1") | |
2021-09-13T19:31:55.667Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/context | |
2021-09-13T19:31:55.667Z INFO webdriver: DATA { name: 'WEBVIEW_6854.1' } | |
2021-09-13T19:31:55.952Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:31:55.952Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/touch/perform | |
2021-09-13T19:31:55.952Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:31:56.291Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _document$querySelect; | |
return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:56.291Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/execute/sync | |
2021-09-13T19:31:56.291Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _document$querySelect;\n' + | |
'\n' + | |
" return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML;\n" + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:31:56.341Z INFO webdriver: RESULT foo | |
2021-09-13T19:31:56.341Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _window$getSelection3, _window$getSelection4; | |
return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:31:56.342Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b/execute/sync | |
2021-09-13T19:31:56.342Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _window$getSelection3, _window$getSelection4;\n' + | |
'\n' + | |
' return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent;\n' + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:31:56.388Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:31:56.388Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/510e9fc9e0a653b5ecd838c12fa38d61f0fed01b | |
2021-09-13T19:31:57.000Z INFO webdriver: RESULT | |
2021-09-13T19:31:57.000Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:31:57.000Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:32:05.267Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:32:05.267Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/url | |
2021-09-13T19:32:05.267Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:32:06.927Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:32:06.927Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:06.927Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:32:07.101Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:32:07.104Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:32:07.105Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:07.105Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:32:07.237Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:32:07.240Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:32:07.241Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element/5001/displayed | |
2021-09-13T19:32:07.306Z INFO webdriver: RESULT true | |
2021-09-13T19:32:07.306Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:32:07.307Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/execute/sync | |
2021-09-13T19:32:07.307Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:32:07.368Z INFO webdriver: RESULT true | |
2021-09-13T19:32:07.368Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:32:07.369Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element/5001/rect | |
2021-09-13T19:32:07.491Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:32:07.491Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:32:07.491Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/context | |
2021-09-13T19:32:07.710Z INFO webdriver: RESULT WEBVIEW_29832.1 | |
2021-09-13T19:32:07.710Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:32:07.710Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/context | |
2021-09-13T19:32:07.710Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:32:07.772Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:32:07.772Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:07.772Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:32:08.209Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-8874-000000000000', | |
ELEMENT: '10000000-0000-0000-8874-000000000000' | |
} | |
2021-09-13T19:32:08.214Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-8874-000000000000") | |
2021-09-13T19:32:08.215Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element/10000000-0000-0000-8874-000000000000/rect | |
2021-09-13T19:32:08.381Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:32:08.381Z INFO webdriver: COMMAND switchContext("WEBVIEW_29832.1") | |
2021-09-13T19:32:08.381Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/context | |
2021-09-13T19:32:08.381Z INFO webdriver: DATA { name: 'WEBVIEW_29832.1' } | |
2021-09-13T19:32:08.546Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:32:08.546Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/touch/perform | |
2021-09-13T19:32:08.546Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:32:08.867Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:32:08.867Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:08.867Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:32:08.999Z INFO webdriver: RESULT { | |
message: 'An element could not be located on the page using the given search parameters.' | |
} | |
2021-09-13T19:32:09.368Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:32:09.368Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:09.368Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:32:09.488Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:32:09.494Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:32:09.494Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:09.494Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:32:09.586Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:32:09.590Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Swipe over hidden thought"}}") | |
2021-09-13T19:32:09.590Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/execute/sync | |
2021-09-13T19:32:09.590Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Swipe over hidden thought"}}' | |
} | |
2021-09-13T19:32:09.591Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:32:09.591Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/window/rect | |
2021-09-13T19:32:09.641Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:32:09.641Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:32:09.641Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/touch/perform | |
2021-09-13T19:32:09.641Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:32:09.801Z INFO webdriver: RESULT {"automation_session":{"name":"Swipe over hidden thought","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"95a9e4eb7d38db6066cf701035229277a656464e","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:32:10.308Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:10.309Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/execute/sync | |
2021-09-13T19:32:10.309Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:32:10.466Z INFO webdriver: RESULT true | |
2021-09-13T19:32:10.466Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:32:10.466Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:10.467Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:32:10.553Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:32:10.558Z INFO webdriver: COMMAND executeScript("return ((_pathUnranked, _text) => { | |
const testHelpers = em.testHelpers; | |
testHelpers.importToContext(_pathUnranked, _text); | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:10.558Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/execute/sync | |
2021-09-13T19:32:10.558Z INFO webdriver: DATA { | |
script: 'return ((_pathUnranked, _text) => {\n' + | |
' const testHelpers = em.testHelpers;\n' + | |
' testHelpers.importToContext(_pathUnranked, _text);\n' + | |
' }).apply(null, arguments)', | |
args: [ | |
[ '' ], | |
'\n' + | |
' - a\n' + | |
' - x\n' + | |
' - y\n' + | |
' - b\n' + | |
' - c\n' + | |
' - d\n' + | |
' - e\n' + | |
' - f\n' + | |
' - g\n' + | |
' - h\n' + | |
' - i' | |
] | |
} | |
2021-09-13T19:32:11.288Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:11.288Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/execute/sync | |
2021-09-13T19:32:11.288Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'i' ] | |
} | |
2021-09-13T19:32:11.336Z INFO webdriver: RESULT true | |
2021-09-13T19:32:11.336Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "i")]") | |
2021-09-13T19:32:11.336Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:11.336Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "i")]' | |
} | |
2021-09-13T19:32:11.464Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:32:11.468Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "a")]") | |
2021-09-13T19:32:11.468Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:11.468Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "a")]' | |
} | |
2021-09-13T19:32:11.542Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:32:11.545Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:32:11.546Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element/5006/click | |
2021-09-13T19:32:11.721Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "x")]") | |
2021-09-13T19:32:11.721Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:11.721Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "x")]' | |
} | |
2021-09-13T19:32:11.800Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5007', ELEMENT: '5007' } | |
2021-09-13T19:32:11.805Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:32:11.806Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element/5007/click | |
2021-09-13T19:32:11.939Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "y")]") | |
2021-09-13T19:32:11.939Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:11.939Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "y")]' | |
} | |
2021-09-13T19:32:12.000Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5008', ELEMENT: '5008' } | |
2021-09-13T19:32:12.004Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:32:12.004Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element/5008/click | |
2021-09-13T19:32:12.186Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:12.186Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/execute/sync | |
2021-09-13T19:32:12.186Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'y' ] | |
} | |
2021-09-13T19:32:12.231Z INFO webdriver: RESULT true | |
2021-09-13T19:32:12.231Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "y")]") | |
2021-09-13T19:32:12.231Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:12.231Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "y")]' | |
} | |
2021-09-13T19:32:12.512Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5009', ELEMENT: '5009' } | |
2021-09-13T19:32:12.516Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:32:12.516Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/context | |
2021-09-13T19:32:12.625Z INFO webdriver: RESULT WEBVIEW_29832.1 | |
2021-09-13T19:32:12.625Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:32:12.625Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/context | |
2021-09-13T19:32:12.625Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:32:12.689Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="em"]") | |
2021-09-13T19:32:12.689Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:12.689Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeOther[@name="em"]' } | |
2021-09-13T19:32:13.379Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '05000000-0000-0000-8C74-000000000000', | |
ELEMENT: '05000000-0000-0000-8C74-000000000000' | |
} | |
2021-09-13T19:32:13.382Z INFO webdriver: COMMAND getElementRect("05000000-0000-0000-8C74-000000000000") | |
2021-09-13T19:32:13.382Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element/05000000-0000-0000-8C74-000000000000/rect | |
2021-09-13T19:32:13.660Z INFO webdriver: RESULT { y: 94, x: 0, width: 414, height: 967 } | |
2021-09-13T19:32:13.660Z INFO webdriver: COMMAND switchContext("WEBVIEW_29832.1") | |
2021-09-13T19:32:13.661Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/context | |
2021-09-13T19:32:13.661Z INFO webdriver: DATA { name: 'WEBVIEW_29832.1' } | |
2021-09-13T19:32:13.770Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:32:13.770Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element/5009/rect | |
2021-09-13T19:32:13.874Z INFO webdriver: RESULT { x: 89.5875015258789, y: 141.5, width: 280, height: 26 } | |
2021-09-13T19:32:13.875Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:32:13.875Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/touch/perform | |
2021-09-13T19:32:13.875Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:32:14.600Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:14.600Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/execute/sync | |
2021-09-13T19:32:14.600Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:32:14.735Z INFO webdriver: RESULT true | |
2021-09-13T19:32:14.735Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:32:14.735Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:14.735Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:32:14.798Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5010', ELEMENT: '5010' } | |
2021-09-13T19:32:14.801Z INFO webdriver: COMMAND sendKeys(<object>) | |
2021-09-13T19:32:14.802Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/keys | |
2021-09-13T19:32:14.802Z INFO webdriver: DATA { value: [ 'this-is-new-thought' ] } | |
2021-09-13T19:32:15.476Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:15.476Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/execute/sync | |
2021-09-13T19:32:15.476Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'this-is-new-thought' ] | |
} | |
2021-09-13T19:32:15.569Z INFO webdriver: RESULT true | |
2021-09-13T19:32:15.569Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "this-is-new-thought")]") | |
2021-09-13T19:32:15.569Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:15.569Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "this-is-new-thought")]' | |
} | |
2021-09-13T19:32:15.648Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5011', ELEMENT: '5011' } | |
2021-09-13T19:32:15.652Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:15.652Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/execute/sync | |
2021-09-13T19:32:15.652Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'this-is-new-thought' ] | |
} | |
2021-09-13T19:32:15.695Z INFO webdriver: RESULT true | |
2021-09-13T19:32:15.696Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "this-is-new-thought")]") | |
2021-09-13T19:32:15.696Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/element | |
2021-09-13T19:32:15.696Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "this-is-new-thought")]' | |
} | |
2021-09-13T19:32:15.804Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5012', ELEMENT: '5012' } | |
2021-09-13T19:32:15.807Z INFO webdriver: COMMAND executeScript("return (newThoughtEditable => { | |
var _closest, _closest$firstElement; | |
const editable = (_closest = newThoughtEditable.closest('ul.children')) === null || _closest === void 0 ? void 0 : (_closest$firstElement = _closest.firstElementChild) === null || _closest$firstElement === void 0 ? void 0 : _closest$firstElement.getElementsByClassName('editable')[0]; | |
return editable === null || editable === void 0 ? void 0 : editable.innerText; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:15.808Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e/execute/sync | |
2021-09-13T19:32:15.808Z INFO webdriver: DATA { | |
script: 'return (newThoughtEditable => {\n' + | |
' var _closest, _closest$firstElement;\n' + | |
'\n' + | |
" const editable = (_closest = newThoughtEditable.closest('ul.children')) === null || _closest === void 0 ? void 0 : (_closest$firstElement = _closest.firstElementChild) === null || _closest$firstElement === void 0 ? void 0 : _closest$firstElement.getElementsByClassName('editable')[0];\n" + | |
' return editable === null || editable === void 0 ? void 0 : editable.innerText;\n' + | |
' }).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5012', ELEMENT: '5012' } | |
] | |
} | |
2021-09-13T19:32:15.849Z INFO webdriver: RESULT y | |
2021-09-13T19:32:15.850Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:32:15.850Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/95a9e4eb7d38db6066cf701035229277a656464e | |
2021-09-13T19:32:16.448Z INFO webdriver: RESULT | |
2021-09-13T19:32:16.449Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:32:16.449Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:32:24.923Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:32:24.923Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/url | |
2021-09-13T19:32:24.923Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:32:26.515Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:32:26.515Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:26.515Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:32:27.738Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:32:27.741Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:32:27.741Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:27.741Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:32:27.828Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:32:27.831Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:32:27.831Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element/5001/displayed | |
2021-09-13T19:32:27.945Z INFO webdriver: RESULT true | |
2021-09-13T19:32:27.946Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:32:27.946Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:27.946Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:32:28.018Z INFO webdriver: RESULT true | |
2021-09-13T19:32:28.018Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:32:28.018Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element/5001/rect | |
2021-09-13T19:32:28.110Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:32:28.110Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:32:28.110Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/context | |
2021-09-13T19:32:28.137Z INFO webdriver: RESULT WEBVIEW_33859.1 | |
2021-09-13T19:32:28.137Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:32:28.137Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/context | |
2021-09-13T19:32:28.137Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:32:28.211Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:32:28.211Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:28.211Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:32:28.658Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-4384-000000000000', | |
ELEMENT: '10000000-0000-0000-4384-000000000000' | |
} | |
2021-09-13T19:32:28.663Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-4384-000000000000") | |
2021-09-13T19:32:28.663Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element/10000000-0000-0000-4384-000000000000/rect | |
2021-09-13T19:32:28.807Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:32:28.807Z INFO webdriver: COMMAND switchContext("WEBVIEW_33859.1") | |
2021-09-13T19:32:28.807Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/context | |
2021-09-13T19:32:28.807Z INFO webdriver: DATA { name: 'WEBVIEW_33859.1' } | |
2021-09-13T19:32:31.911Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:32:31.912Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/touch/perform | |
2021-09-13T19:32:31.912Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:32:33.005Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:32:33.005Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:33.005Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:32:33.532Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:32:33.537Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:32:33.537Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:33.537Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:32:34.052Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:32:34.057Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Bump Thought Down on a thought that has children"}}") | |
2021-09-13T19:32:34.057Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:34.057Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Bump Thought Down on a thought that has children"}}' | |
} | |
2021-09-13T19:32:34.058Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:32:34.058Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/window/rect | |
2021-09-13T19:32:34.559Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:34.559Z INFO webdriver: Retrying 1/100 | |
2021-09-13T19:32:34.559Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:34.559Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "Bump Thought Down on a thought that has children"}}' | |
} | |
2021-09-13T19:32:34.628Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:32:34.630Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:32:34.630Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/touch/perform | |
2021-09-13T19:32:34.630Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:32:35.274Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:35.199Z INFO webdriver: RESULT {"automation_session":{"name":"Bump Thought Down on a thought that has children","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"d70f146f22f183ad485c285c1287a1d15dcd2559","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:32:35.274Z INFO webdriver: Retrying 1/100 | |
2021-09-13T19:32:35.274Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/touch/perform | |
2021-09-13T19:32:35.274Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:32:36.216Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:36.217Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:36.217Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:32:36.267Z INFO webdriver: RESULT true | |
2021-09-13T19:32:36.267Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:32:36.267Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:36.267Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:32:36.410Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:32:36.415Z INFO webdriver: COMMAND sendKeys(<object>) | |
2021-09-13T19:32:36.415Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/keys | |
2021-09-13T19:32:36.415Z INFO webdriver: DATA { value: [ 'foo' ] } | |
2021-09-13T19:32:36.800Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:36.802Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:36.802Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'foo' ] | |
} | |
2021-09-13T19:32:36.854Z INFO webdriver: RESULT true | |
2021-09-13T19:32:36.854Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "foo")]") | |
2021-09-13T19:32:36.854Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:36.854Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "foo")]' | |
} | |
2021-09-13T19:32:36.978Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:32:36.982Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:32:36.982Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/window/rect | |
2021-09-13T19:32:37.046Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:32:37.046Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:32:37.046Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/touch/perform | |
2021-09-13T19:32:37.046Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:32:37.964Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:37.965Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:37.965Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ '' ] | |
} | |
2021-09-13T19:32:38.107Z INFO webdriver: RESULT true | |
2021-09-13T19:32:38.107Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "")]") | |
2021-09-13T19:32:38.107Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:38.107Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "")]' | |
} | |
2021-09-13T19:32:38.234Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:32:38.239Z INFO webdriver: COMMAND sendKeys(<object>) | |
2021-09-13T19:32:38.239Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/keys | |
2021-09-13T19:32:38.239Z INFO webdriver: DATA { value: [ 'bar' ] } | |
2021-09-13T19:32:38.625Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:38.626Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:38.626Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'bar' ] | |
} | |
2021-09-13T19:32:38.678Z INFO webdriver: RESULT true | |
2021-09-13T19:32:38.678Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "bar")]") | |
2021-09-13T19:32:38.678Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:38.678Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "bar")]' | |
} | |
2021-09-13T19:32:38.762Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5007', ELEMENT: '5007' } | |
2021-09-13T19:32:38.766Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:32:38.766Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/context | |
2021-09-13T19:32:38.795Z INFO webdriver: RESULT WEBVIEW_33859.1 | |
2021-09-13T19:32:38.795Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:32:38.795Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/context | |
2021-09-13T19:32:38.795Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:32:38.862Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:32:38.863Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:38.863Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:32:39.375Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': 'A7000000-0000-0000-4384-000000000000', | |
ELEMENT: 'A7000000-0000-0000-4384-000000000000' | |
} | |
2021-09-13T19:32:39.378Z INFO webdriver: COMMAND elementClick("A7000000-0000-0000-4384-000000000000") | |
2021-09-13T19:32:39.378Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element/A7000000-0000-0000-4384-000000000000/click | |
2021-09-13T19:32:40.014Z INFO webdriver: COMMAND findElements("xpath", "//XCUIElementTypeButton[@name="Done"]") | |
2021-09-13T19:32:40.014Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/elements | |
2021-09-13T19:32:40.016Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Done"]' } | |
2021-09-13T19:32:40.585Z INFO webdriver: RESULT [] | |
2021-09-13T19:32:40.587Z INFO webdriver: COMMAND switchContext("WEBVIEW_33859.1") | |
2021-09-13T19:32:40.587Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/context | |
2021-09-13T19:32:40.587Z INFO webdriver: DATA { name: 'WEBVIEW_33859.1' } | |
2021-09-13T19:32:40.730Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "foo")]") | |
2021-09-13T19:32:40.731Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:40.732Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "foo")]' | |
} | |
2021-09-13T19:32:40.833Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5008', ELEMENT: '5008' } | |
2021-09-13T19:32:40.835Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:32:40.835Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element/5008/rect | |
2021-09-13T19:32:40.973Z INFO webdriver: RESULT { x: 69.84375, y: 108.6875, width: 324, height: 26 } | |
2021-09-13T19:32:40.974Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:32:40.974Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/context | |
2021-09-13T19:32:41.020Z INFO webdriver: RESULT WEBVIEW_33859.1 | |
2021-09-13T19:32:41.020Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:32:41.021Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/context | |
2021-09-13T19:32:41.021Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:32:41.047Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:32:41.047Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:41.047Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:32:41.450Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-4384-000000000000', | |
ELEMENT: '10000000-0000-0000-4384-000000000000' | |
} | |
2021-09-13T19:32:41.454Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-4384-000000000000") | |
2021-09-13T19:32:41.454Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element/10000000-0000-0000-4384-000000000000/rect | |
2021-09-13T19:32:41.570Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:32:41.570Z INFO webdriver: COMMAND switchContext("WEBVIEW_33859.1") | |
2021-09-13T19:32:41.570Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/context | |
2021-09-13T19:32:41.570Z INFO webdriver: DATA { name: 'WEBVIEW_33859.1' } | |
2021-09-13T19:32:41.803Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:32:41.803Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/touch/perform | |
2021-09-13T19:32:41.803Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:32:42.164Z INFO webdriver: COMMAND getWindowRect() | |
2021-09-13T19:32:42.164Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/window/rect | |
2021-09-13T19:32:42.210Z INFO webdriver: RESULT { width: 414, height: 896, x: 0, y: 0 } | |
2021-09-13T19:32:42.210Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:32:42.210Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/touch/perform | |
2021-09-13T19:32:42.210Z INFO webdriver: DATA { | |
actions: [ | |
{ action: 'press', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'wait', options: [Object] }, | |
{ action: 'moveTo', options: [Object] }, | |
{ action: 'release' } | |
] | |
} | |
2021-09-13T19:32:43.122Z INFO webdriver: COMMAND sendKeys(<object>) | |
2021-09-13T19:32:43.122Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/keys | |
2021-09-13T19:32:43.122Z INFO webdriver: DATA { value: [ 'new' ] } | |
2021-09-13T19:32:43.433Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:43.433Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:43.433Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'new' ] | |
} | |
2021-09-13T19:32:43.532Z INFO webdriver: RESULT true | |
2021-09-13T19:32:43.533Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "new")]") | |
2021-09-13T19:32:43.533Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/element | |
2021-09-13T19:32:43.533Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "new")]' | |
} | |
2021-09-13T19:32:43.716Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5009', ELEMENT: '5009' } | |
2021-09-13T19:32:43.719Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _window$getSelection3, _window$getSelection4; | |
return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:43.719Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:43.719Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _window$getSelection3, _window$getSelection4;\n' + | |
'\n' + | |
' return (_window$getSelection3 = window.getSelection()) === null || _window$getSelection3 === void 0 ? void 0 : (_window$getSelection4 = _window$getSelection3.focusNode) === null || _window$getSelection4 === void 0 ? void 0 : _window$getSelection4.textContent;\n' + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:32:43.774Z INFO webdriver: RESULT new | |
2021-09-13T19:32:43.775Z INFO webdriver: COMMAND executeScript("return (newThoughtEditable => { | |
var _closest2, _closest2$firstElemen, _closest2$firstElemen2; | |
const children = (_closest2 = newThoughtEditable.closest('ul.children')) === null || _closest2 === void 0 ? void 0 : (_closest2$firstElemen = _closest2.firstElementChild) === null || _closest2$firstElemen === void 0 ? void 0 : (_closest2$firstElemen2 = _closest2$firstElemen.getElementsByTagName('ul')[0]) === null || _closest2$firstElemen2 === void 0 ? void 0 : _closest2$firstElemen2.getElementsByClassName('editable'); | |
return Array.from(children).map(x => x.innerText); | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:32:43.775Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:43.775Z INFO webdriver: DATA { | |
script: 'return (newThoughtEditable => {\n' + | |
' var _closest2, _closest2$firstElemen, _closest2$firstElemen2;\n' + | |
'\n' + | |
" const children = (_closest2 = newThoughtEditable.closest('ul.children')) === null || _closest2 === void 0 ? void 0 : (_closest2$firstElemen = _closest2.firstElementChild) === null || _closest2$firstElemen === void 0 ? void 0 : (_closest2$firstElemen2 = _closest2$firstElemen.getElementsByTagName('ul')[0]) === null || _closest2$firstElemen2 === void 0 ? void 0 : _closest2$firstElemen2.getElementsByClassName('editable');\n" + | |
' return Array.from(children).map(x => x.innerText);\n' + | |
' }).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5009', ELEMENT: '5009' } | |
] | |
} | |
2021-09-13T19:32:43.834Z INFO webdriver: RESULT [] | |
2021-09-13T19:32:43.841Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}") | |
2021-09-13T19:32:43.841Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:43.841Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
Teardown Test Environment for webdriverio. | |
2021-09-13T19:32:43.874Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:32:43.874Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559 | |
2021-09-13T19:32:44.165Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:44.166Z INFO webdriver: Retrying 1/100 | |
2021-09-13T19:32:44.166Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:44.166Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
FAIL src/e2e/iOS/__tests__/caret.ts (203.65 s) | |
✓ Enter edit mode (10188 ms) | |
✓ Preserve Editing: true (20741 ms) | |
✓ Preserve Editing: false (22475 ms) | |
✓ Tap hidden root thought (16038 ms) | |
✓ Tap hidden uncle (16580 ms) | |
✓ Tap empty content while keyboard up (18810 ms) | |
✓ Tap empty content while keyboard down (20203 ms) | |
✓ Swipe over cursor (19861 ms) | |
✓ Swipe over hidden thought (19462 ms) | |
✕ Bump Thought Down on a thought that has children (27992 ms) | |
○ skipped No uncle loop | |
● Bump Thought Down on a thought that has children | |
expect(received).toEqual(expected) // deep equality | |
- Expected - 4 | |
+ Received + 1 | |
- Array [ | |
- "foo", | |
- "bar", | |
- ] | |
+ Array [] | |
254 | | |
255 | expect(selectionTextContent).toBe('new') | |
> 256 | expect(childrenTexts).toEqual(['foo', 'bar']) | |
| ^ | |
257 | }) | |
258 | | |
at Object.<anonymous> (src/e2e/iOS/__tests__/caret.ts:256:25) | |
2021-09-13T19:32:45.232Z INFO webdriver: RESULT | |
Setup Test Environment for webdriverio. | |
Using the currently running app on http://localhost:3000 | |
2021-09-13T19:32:45.277Z INFO webdriver: Initiate new session using the WebDriver protocol | |
2021-09-13T19:32:45.277Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:32:45.277Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:32:45.631Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:45.632Z INFO webdriver: Retrying 2/100 | |
2021-09-13T19:32:45.632Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:45.632Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:46.852Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:46.852Z INFO webdriver: Retrying 3/100 | |
2021-09-13T19:32:46.852Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:46.852Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:48.134Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:48.134Z INFO webdriver: Retrying 4/100 | |
2021-09-13T19:32:48.134Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:48.134Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:49.372Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:49.372Z INFO webdriver: Retrying 5/100 | |
2021-09-13T19:32:49.372Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:49.372Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:50.829Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:50.829Z INFO webdriver: Retrying 6/100 | |
2021-09-13T19:32:50.829Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:50.829Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:52.100Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:52.100Z INFO webdriver: Retrying 7/100 | |
2021-09-13T19:32:52.100Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:52.100Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:53.414Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:53.414Z INFO webdriver: Retrying 8/100 | |
2021-09-13T19:32:53.414Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:53.414Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:54.672Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:54.619Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:32:54.620Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/url | |
2021-09-13T19:32:54.620Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:32:54.673Z INFO webdriver: Retrying 9/100 | |
2021-09-13T19:32:54.673Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:54.673Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:55.903Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:55.903Z INFO webdriver: Retrying 10/100 | |
2021-09-13T19:32:55.904Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:55.904Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:56.359Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:32:56.360Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:32:56.360Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:32:56.601Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:32:56.604Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:32:56.604Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:32:56.604Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:32:56.919Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:32:56.922Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:32:56.922Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element/5001/displayed | |
2021-09-13T19:32:57.095Z INFO webdriver: RESULT true | |
2021-09-13T19:32:57.095Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:32:57.095Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:32:57.095Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:32:57.249Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:57.249Z INFO webdriver: Retrying 11/100 | |
2021-09-13T19:32:57.249Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:57.249Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:57.291Z INFO webdriver: RESULT true | |
2021-09-13T19:32:57.292Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:32:57.292Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element/5001/rect | |
2021-09-13T19:32:57.486Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:32:57.486Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:32:57.486Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/context | |
2021-09-13T19:32:57.633Z INFO webdriver: RESULT WEBVIEW_87798.1 | |
2021-09-13T19:32:57.633Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:32:57.633Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/context | |
2021-09-13T19:32:57.633Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:32:57.778Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:32:57.778Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:32:57.778Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:32:58.321Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-F656-010000000000', | |
ELEMENT: '10000000-0000-0000-F656-010000000000' | |
} | |
2021-09-13T19:32:58.324Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-F656-010000000000") | |
2021-09-13T19:32:58.324Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element/10000000-0000-0000-F656-010000000000/rect | |
2021-09-13T19:32:58.503Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:58.503Z INFO webdriver: Retrying 12/100 | |
2021-09-13T19:32:58.503Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:58.504Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:58.569Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:32:58.569Z INFO webdriver: COMMAND switchContext("WEBVIEW_87798.1") | |
2021-09-13T19:32:58.569Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/context | |
2021-09-13T19:32:58.569Z INFO webdriver: DATA { name: 'WEBVIEW_87798.1' } | |
2021-09-13T19:32:58.777Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:32:58.777Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/touch/perform | |
2021-09-13T19:32:58.777Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:32:59.184Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:32:59.185Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:32:59.185Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:32:59.447Z INFO webdriver: RESULT { | |
message: 'An element could not be located on the page using the given search parameters.' | |
} | |
2021-09-13T19:32:59.686Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:32:59.686Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:32:59.686Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:32:59.843Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:32:59.843Z INFO webdriver: Retrying 13/100 | |
2021-09-13T19:32:59.844Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:32:59.844Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:32:59.915Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:32:59.918Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:32:59.918Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:32:59.918Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:33:00.170Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:33:00.173Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "split a thought when the caret is in the middle"}}") | |
2021-09-13T19:33:00.174Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:33:00.174Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "split a thought when the caret is in the middle"}}' | |
} | |
2021-09-13T19:33:00.175Z INFO webdriver: COMMAND executeScript("return ((_pathUnranked, _text) => { | |
const testHelpers = em.testHelpers; | |
testHelpers.importToContext(_pathUnranked, _text); | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:33:00.175Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:33:00.175Z INFO webdriver: DATA { | |
script: 'return ((_pathUnranked, _text) => {\n' + | |
' const testHelpers = em.testHelpers;\n' + | |
' testHelpers.importToContext(_pathUnranked, _text);\n' + | |
' }).apply(null, arguments)', | |
args: [ | |
[ '__ROOT__' ], | |
'\n - puppeteer\n - web scraping\n - insomnia\n - rest api' | |
] | |
} | |
2021-09-13T19:33:00.712Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:00.713Z INFO webdriver: Retrying 1/100 | |
2021-09-13T19:33:00.713Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:33:00.713Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "split a thought when the caret is in the middle"}}' | |
} | |
2021-09-13T19:33:00.814Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:33:00.814Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:33:00.814Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'puppeteer' ] | |
} | |
2021-09-13T19:33:01.070Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:01.140Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:01.070Z INFO webdriver: Retrying 1/100 | |
2021-09-13T19:33:01.070Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:33:01.070Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'puppeteer' ] | |
} | |
2021-09-13T19:33:01.140Z INFO webdriver: Retrying 14/100 | |
2021-09-13T19:33:01.140Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:01.140Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:01.438Z INFO webdriver: RESULT {"automation_session":{"name":"split a thought when the caret is in the middle","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"e6bc7a27614f444e6dc28f9cfd351bae625b05b4","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:33:01.973Z INFO webdriver: RESULT true | |
2021-09-13T19:33:01.973Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "puppeteer")]") | |
2021-09-13T19:33:01.973Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:33:01.973Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "puppeteer")]' | |
} | |
2021-09-13T19:33:02.429Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:02.429Z INFO webdriver: Retrying 15/100 | |
2021-09-13T19:33:02.429Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:02.429Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:02.461Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:33:02.464Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "puppeteer")]") | |
2021-09-13T19:33:02.464Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:33:02.464Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "puppeteer")]' | |
} | |
2021-09-13T19:33:02.967Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:33:02.972Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:33:02.973Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element/5005/click | |
2021-09-13T19:33:03.561Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:33:03.562Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:33:03.562Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'web scraping' ] | |
} | |
2021-09-13T19:33:03.753Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:03.753Z INFO webdriver: Retrying 16/100 | |
2021-09-13T19:33:03.753Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:03.753Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:03.862Z INFO webdriver: RESULT true | |
2021-09-13T19:33:03.862Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "web scraping")]") | |
2021-09-13T19:33:03.862Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:33:03.862Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "web scraping")]' | |
} | |
2021-09-13T19:33:04.374Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:33:04.379Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "web scraping")]") | |
2021-09-13T19:33:04.379Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:33:04.379Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "web scraping")]' | |
} | |
2021-09-13T19:33:04.860Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5007', ELEMENT: '5007' } | |
2021-09-13T19:33:04.864Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:33:04.865Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element/5007/click | |
2021-09-13T19:33:04.977Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:04.977Z INFO webdriver: Retrying 17/100 | |
2021-09-13T19:33:04.977Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:04.977Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:05.430Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:33:05.431Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:33:05.431Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'web scraping' ] | |
} | |
2021-09-13T19:33:05.689Z INFO webdriver: RESULT true | |
2021-09-13T19:33:05.689Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "web scraping")]") | |
2021-09-13T19:33:05.689Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:33:05.690Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "web scraping")]' | |
} | |
2021-09-13T19:33:06.269Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:06.233Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5008', ELEMENT: '5008' } | |
2021-09-13T19:33:06.241Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:33:06.241Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element/5008/rect | |
2021-09-13T19:33:06.269Z INFO webdriver: Retrying 18/100 | |
2021-09-13T19:33:06.270Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:06.270Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:06.535Z INFO webdriver: RESULT { x: 89.59375, y: 110.5, width: 302, height: 26 } | |
2021-09-13T19:33:06.536Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:33:06.536Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:33:06.536Z INFO webdriver: DATA { | |
script: 'return (function (ele, offset) {\n' + | |
" // Element<'async'> does not contain native properties like nodeName, textContent, etc\n" + | |
' // Not sure what the actual WebDriverIO type that is returned by findElement\n' + | |
' // Node does not contain property elementId; it is only a Node inside browser.execute, so we cannot change the typeo of the nodeHandle argument\n' + | |
' const textNode = ele.firstChild;\n' + | |
" if (!textNode || textNode.nodeName !== '#text') return;\n" + | |
' const range = document.createRange();\n' + | |
' range.setStart(textNode, offset !== null && offset !== void 0 ? offset : 0);\n' + | |
' const {\n' + | |
' right,\n' + | |
' top,\n' + | |
' height\n' + | |
' } = range.getBoundingClientRect();\n' + | |
' return {\n' + | |
' x: right,\n' + | |
' y: top + height / 2\n' + | |
' };\n' + | |
' }).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5008', ELEMENT: '5008' }, | |
3 | |
] | |
} | |
2021-09-13T19:33:06.828Z INFO webdriver: RESULT { x: 128.59375, y: 126.5 } | |
2021-09-13T19:33:06.829Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:33:06.829Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/context | |
2021-09-13T19:33:07.075Z INFO webdriver: RESULT WEBVIEW_87798.1 | |
2021-09-13T19:33:07.075Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:33:07.075Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/context | |
2021-09-13T19:33:07.075Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:33:07.323Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:33:07.324Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:33:07.324Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:33:07.542Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:07.542Z INFO webdriver: Retrying 19/100 | |
2021-09-13T19:33:07.542Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:07.542Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:08.200Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-F656-010000000000', | |
ELEMENT: '10000000-0000-0000-F656-010000000000' | |
} | |
2021-09-13T19:33:08.205Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-F656-010000000000") | |
2021-09-13T19:33:08.205Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element/10000000-0000-0000-F656-010000000000/rect | |
2021-09-13T19:33:08.577Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:33:08.577Z INFO webdriver: COMMAND switchContext("WEBVIEW_87798.1") | |
2021-09-13T19:33:08.577Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/context | |
2021-09-13T19:33:08.577Z INFO webdriver: DATA { name: 'WEBVIEW_87798.1' } | |
2021-09-13T19:33:08.845Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:08.845Z INFO webdriver: Retrying 20/100 | |
2021-09-13T19:33:08.845Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:08.845Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:08.861Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:33:08.861Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/touch/perform | |
2021-09-13T19:33:08.861Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:33:09.373Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:33:09.373Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/context | |
2021-09-13T19:33:09.611Z INFO webdriver: RESULT WEBVIEW_87798.1 | |
2021-09-13T19:33:09.611Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:33:09.611Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/context | |
2021-09-13T19:33:09.611Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:33:09.876Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeButton[@name="Return"]") | |
2021-09-13T19:33:09.876Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element | |
2021-09-13T19:33:09.876Z INFO webdriver: DATA { using: 'xpath', value: '//XCUIElementTypeButton[@name="Return"]' } | |
2021-09-13T19:33:10.125Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:10.125Z INFO webdriver: Retrying 21/100 | |
2021-09-13T19:33:10.126Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:10.126Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:10.839Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '85000000-0000-0000-F656-010000000000', | |
ELEMENT: '85000000-0000-0000-F656-010000000000' | |
} | |
2021-09-13T19:33:10.845Z INFO webdriver: COMMAND elementClick("85000000-0000-0000-F656-010000000000") | |
2021-09-13T19:33:10.845Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/element/85000000-0000-0000-F656-010000000000/click | |
2021-09-13T19:33:11.446Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:11.446Z INFO webdriver: Retrying 22/100 | |
2021-09-13T19:33:11.446Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:11.446Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:11.826Z INFO webdriver: COMMAND switchContext("WEBVIEW_87798.1") | |
2021-09-13T19:33:11.826Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/context | |
2021-09-13T19:33:11.826Z INFO webdriver: DATA { name: 'WEBVIEW_87798.1' } | |
2021-09-13T19:33:12.128Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _window$getSelection; | |
return (_window$getSelection = window.getSelection()) === null || _window$getSelection === void 0 ? void 0 : _window$getSelection.focusOffset; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:33:12.128Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:33:12.128Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _window$getSelection;\n' + | |
'\n' + | |
' return (_window$getSelection = window.getSelection()) === null || _window$getSelection === void 0 ? void 0 : _window$getSelection.focusOffset;\n' + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:33:12.394Z INFO webdriver: RESULT 0 | |
2021-09-13T19:33:12.396Z INFO webdriver: COMMAND executeScript("return (() => { | |
var _document$querySelect; | |
return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:33:12.396Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4/execute/sync | |
2021-09-13T19:33:12.396Z INFO webdriver: DATA { | |
script: 'return (() => {\n' + | |
' var _document$querySelect;\n' + | |
'\n' + | |
" return (_document$querySelect = document.querySelector('.editing .editable')) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.innerHTML;\n" + | |
' }).apply(null, arguments)', | |
args: [] | |
} | |
2021-09-13T19:33:12.713Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:12.713Z INFO webdriver: Retrying 23/100 | |
2021-09-13T19:33:12.713Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:12.713Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:12.717Z INFO webdriver: RESULT scraping | |
Teardown Test Environment for webdriverio. | |
2021-09-13T19:33:12.719Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:33:12.719Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/e6bc7a27614f444e6dc28f9cfd351bae625b05b4 | |
PASS src/e2e/iOS/__tests__/split.ts (27.453 s) | |
✓ split a thought when the caret is in the middle (18098 ms) | |
2021-09-13T19:33:13.385Z INFO webdriver: RESULT | |
Setup Test Environment for webdriverio. | |
Using the currently running app on http://localhost:3000 | |
2021-09-13T19:33:13.424Z INFO webdriver: Initiate new session using the WebDriver protocol | |
2021-09-13T19:33:13.424Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session | |
2021-09-13T19:33:13.424Z INFO webdriver: DATA { | |
capabilities: { | |
alwaysMatch: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
}, | |
firstMatch: [ {} ] | |
}, | |
desiredCapabilities: { | |
platformName: 'iOS', | |
browserName: 'Safari', | |
device: 'iPhone 11', | |
osVersion: '13.3', | |
unicodeKeyboard: true, | |
build: '[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n' + | |
'\n' + | |
'Removes direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]', | |
project: 'em', | |
'browserstack.localIdentifier': 'GitHubAction-357b3971-83ee-4e9a-a1da-5d31ba267117', | |
'browserstack.local': 'true', | |
'browserstack.idleTimeout': 30, | |
'browserstack.debug': 'true' | |
} | |
} | |
2021-09-13T19:33:13.939Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:13.939Z INFO webdriver: Retrying 24/100 | |
2021-09-13T19:33:13.940Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:13.940Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:15.243Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:15.243Z INFO webdriver: Retrying 25/100 | |
2021-09-13T19:33:15.243Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:15.243Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:16.597Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:16.598Z INFO webdriver: Retrying 26/100 | |
2021-09-13T19:33:16.598Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:16.598Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:17.993Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:17.993Z INFO webdriver: Retrying 27/100 | |
2021-09-13T19:33:17.993Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:17.993Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:19.319Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:19.319Z INFO webdriver: Retrying 28/100 | |
2021-09-13T19:33:19.319Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:19.319Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:20.686Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:20.686Z INFO webdriver: Retrying 29/100 | |
2021-09-13T19:33:20.686Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:20.686Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:22.350Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:22.347Z INFO webdriver: COMMAND navigateTo("http://bs-local.com:3000") | |
2021-09-13T19:33:22.348Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/url | |
2021-09-13T19:33:22.348Z INFO webdriver: DATA { url: 'http://bs-local.com:3000' } | |
2021-09-13T19:33:22.350Z INFO webdriver: Retrying 30/100 | |
2021-09-13T19:33:22.350Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:22.350Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:23.571Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:23.571Z INFO webdriver: Retrying 31/100 | |
2021-09-13T19:33:23.571Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:23.571Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:23.926Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:33:23.926Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:23.926Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:33:24.036Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5000', ELEMENT: '5000' } | |
2021-09-13T19:33:24.040Z INFO webdriver: COMMAND findElement("css selector", "#skip-tutorial") | |
2021-09-13T19:33:24.040Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:24.040Z INFO webdriver: DATA { using: 'css selector', value: '#skip-tutorial' } | |
2021-09-13T19:33:24.117Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
2021-09-13T19:33:24.120Z INFO webdriver: COMMAND isElementDisplayed("<Screenshot[base64]>") | |
2021-09-13T19:33:24.120Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element/5001/displayed | |
2021-09-13T19:33:24.174Z INFO webdriver: RESULT true | |
2021-09-13T19:33:24.175Z INFO webdriver: COMMAND executeScript(<fn>, <object>) | |
2021-09-13T19:33:24.175Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/execute/sync | |
2021-09-13T19:33:24.175Z INFO webdriver: DATA { | |
script: 'return (function isElementClickable(elem) {\n' + | |
' if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' // Edge before switching to Chromium\n' + | |
' const isOldEdge = !!window.StyleMedia;\n' + | |
' // returns true for Chrome and Firefox and false for Safari, Edge and IE\n' + | |
' const scrollIntoViewFullSupport = !(window.safari || isOldEdge);\n' + | |
' // get overlapping element\n' + | |
' function getOverlappingElement(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elemDimension = elem.getBoundingClientRect();\n' + | |
' const x = elemDimension.left + (elem.clientWidth / 2);\n' + | |
' const y = elemDimension.top + (elem.clientHeight / 2);\n' + | |
' return context.elementFromPoint(x, y);\n' + | |
' }\n' + | |
' // get overlapping element rects (currently only the first)\n' + | |
" // applicable if element's text is multiline.\n" + | |
' function getOverlappingRects(elem, context) {\n' + | |
' context = context || document;\n' + | |
' const elems = [];\n' + | |
' const rects = elem.getClientRects();\n' + | |
" // webdriver clicks on center of the first element's rect (line of text), it might change in future\n" + | |
' const rect = rects[0];\n' + | |
' const x = rect.left + (rect.width / 2);\n' + | |
' const y = rect.top + (rect.height / 2);\n' + | |
' elems.push(context.elementFromPoint(x, y));\n' + | |
' return elems;\n' + | |
' }\n' + | |
' // get overlapping elements\n' + | |
' function getOverlappingElements(elem, context) {\n' + | |
' return [getOverlappingElement(elem, context)].concat(getOverlappingRects(elem, context));\n' + | |
' }\n' + | |
' // is a node a descendant of a given node\n' + | |
' function nodeContains(elem, otherNode) {\n' + | |
" // Edge doesn't support neither Shadow Dom nor contains if ShadowRoot polyfill is used\n" + | |
' if (isOldEdge) {\n' + | |
' let tmpElement = otherNode;\n' + | |
' while (tmpElement) {\n' + | |
' if (tmpElement === elem) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' tmpElement = tmpElement.parentNode;\n' + | |
' // DocumentFragment / ShadowRoot polyfill like ShadyRoot\n' + | |
' if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {\n' + | |
' tmpElement = tmpElement.host;\n' + | |
' }\n' + | |
' }\n' + | |
' return false;\n' + | |
' }\n' + | |
' return elem.contains(otherNode);\n' + | |
' }\n' + | |
' // is one of overlapping elements the `elem` or one of its child\n' + | |
' function isOverlappingElementMatch(elementsFromPoint, elem) {\n' + | |
' if (elementsFromPoint.some(function (elementFromPoint) {\n' + | |
' return elementFromPoint === elem || nodeContains(elem, elementFromPoint);\n' + | |
' })) {\n' + | |
' return true;\n' + | |
' }\n' + | |
' // shadow root\n' + | |
' // filter unique elements with shadowRoot\n' + | |
' // @ts-ignore\n' + | |
' let elemsWithShadowRoot = [].concat(elementsFromPoint);\n' + | |
' elemsWithShadowRoot = elemsWithShadowRoot.filter(function (x) {\n' + | |
' return x && x.shadowRoot && x.shadowRoot.elementFromPoint;\n' + | |
' });\n' + | |
' // getOverlappingElements of every element with shadowRoot\n' + | |
' let shadowElementsFromPoint = [];\n' + | |
' for (let i = 0; i < elemsWithShadowRoot.length; ++i) {\n' + | |
' let shadowElement = elemsWithShadowRoot[i];\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.concat(getOverlappingElements(elem, shadowElement.shadowRoot));\n' + | |
' }\n' + | |
' // remove duplicates and parents\n' + | |
' // @ts-ignore\n' + | |
' shadowElementsFromPoint = [].concat(shadowElementsFromPoint);\n' + | |
' shadowElementsFromPoint = shadowElementsFromPoint.filter(function (x) {\n' + | |
' return !elementsFromPoint.includes(x);\n' + | |
' });\n' + | |
' if (shadowElementsFromPoint.length === 0) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' return isOverlappingElementMatch(shadowElementsFromPoint, elem);\n' + | |
' }\n' + | |
' // copied from `isElementInViewport.js`\n' + | |
' function isElementInViewport(elem) {\n' + | |
' if (!elem.getBoundingClientRect) {\n' + | |
' return false;\n' + | |
' }\n' + | |
' const rect = elem.getBoundingClientRect();\n' + | |
' const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n' + | |
' const windowWidth = (window.innerWidth || document.documentElement.clientWidth);\n' + | |
' const vertInView = (rect.top <= windowHeight) && ((rect.top + rect.height) > 0);\n' + | |
' const horInView = (rect.left <= windowWidth) && ((rect.left + rect.width) > 0);\n' + | |
' return (vertInView && horInView);\n' + | |
' }\n' + | |
' function isClickable(elem) {\n' + | |
' return (isElementInViewport(elem) && elem.disabled !== true &&\n' + | |
' isOverlappingElementMatch(getOverlappingElements(elem), elem));\n' + | |
' }\n' + | |
" // scroll to the element if it's not clickable\n" + | |
' if (!isClickable(elem)) {\n' + | |
' // works well in dialogs, but the element may be still overlapped by some sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'nearest', inline: 'nearest' } : false);\n" + | |
' // if element is still not clickable take another scroll attempt\n' + | |
' if (!isClickable(elem)) {\n' + | |
' // scroll to element, try put it in the screen center.\n' + | |
' // Should definitely work even if element was covered with sticky header/footer\n' + | |
" elem.scrollIntoView(scrollIntoViewFullSupport ? { block: 'center', inline: 'center' } : true);\n" + | |
' return isClickable(elem);\n' + | |
' }\n' + | |
' }\n' + | |
' return true;\n' + | |
'}).apply(null, arguments)', | |
args: [ | |
{ 'element-6066-11e4-a52e-4f735466cecf': '5001', ELEMENT: '5001' } | |
] | |
} | |
2021-09-13T19:33:24.251Z INFO webdriver: RESULT true | |
2021-09-13T19:33:24.252Z INFO webdriver: COMMAND getElementRect("<Screenshot[base64]>") | |
2021-09-13T19:33:24.252Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element/5001/rect | |
2021-09-13T19:33:24.316Z INFO webdriver: RESULT { x: 102.802001953125, y: 283.859375, width: 208, height: 19 } | |
2021-09-13T19:33:24.317Z INFO webdriver: COMMAND getContext() | |
2021-09-13T19:33:24.317Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/context | |
2021-09-13T19:33:24.381Z INFO webdriver: RESULT WEBVIEW_25724.1 | |
2021-09-13T19:33:24.382Z INFO webdriver: COMMAND switchContext("NATIVE_APP") | |
2021-09-13T19:33:24.382Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/context | |
2021-09-13T19:33:24.382Z INFO webdriver: DATA { name: 'NATIVE_APP' } | |
2021-09-13T19:33:24.412Z INFO webdriver: COMMAND findElement("xpath", "//XCUIElementTypeOther[@name="topBrowserBar"]") | |
2021-09-13T19:33:24.413Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:24.413Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//XCUIElementTypeOther[@name="topBrowserBar"]' | |
} | |
2021-09-13T19:33:24.652Z INFO webdriver: RESULT { | |
'element-6066-11e4-a52e-4f735466cecf': '10000000-0000-0000-7C64-000000000000', | |
ELEMENT: '10000000-0000-0000-7C64-000000000000' | |
} | |
2021-09-13T19:33:24.655Z INFO webdriver: COMMAND getElementRect("10000000-0000-0000-7C64-000000000000") | |
2021-09-13T19:33:24.655Z INFO webdriver: [GET] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element/10000000-0000-0000-7C64-000000000000/rect | |
2021-09-13T19:33:24.850Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:24.829Z INFO webdriver: RESULT { y: 44, x: 0, width: 414, height: 50 } | |
2021-09-13T19:33:24.829Z INFO webdriver: COMMAND switchContext("WEBVIEW_25724.1") | |
2021-09-13T19:33:24.829Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/context | |
2021-09-13T19:33:24.829Z INFO webdriver: DATA { name: 'WEBVIEW_25724.1' } | |
2021-09-13T19:33:24.851Z INFO webdriver: Retrying 32/100 | |
2021-09-13T19:33:24.851Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:24.851Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:24.976Z INFO webdriver: COMMAND touchPerform(<object>) | |
2021-09-13T19:33:24.976Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/touch/perform | |
2021-09-13T19:33:24.976Z INFO webdriver: DATA { actions: [ { action: 'tap', options: [Object] } ] } | |
2021-09-13T19:33:25.219Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:33:25.219Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:25.219Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:33:25.405Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5002', ELEMENT: '5002' } | |
2021-09-13T19:33:25.408Z INFO webdriver: COMMAND findElement("css selector", ".new-thought-instructions") | |
2021-09-13T19:33:25.408Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:25.408Z INFO webdriver: DATA { using: 'css selector', value: '.new-thought-instructions' } | |
2021-09-13T19:33:25.495Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5003', ELEMENT: '5003' } | |
2021-09-13T19:33:25.498Z INFO webdriver: COMMAND executeScript("browserstack_executor: {"action": "setSessionName", "arguments": {"name": "click home link to set the cursor to null"}}") | |
2021-09-13T19:33:25.498Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/execute/sync | |
2021-09-13T19:33:25.498Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "click home link to set the cursor to null"}}' | |
} | |
2021-09-13T19:33:25.499Z INFO webdriver: COMMAND executeScript("return ((_pathUnranked, _text) => { | |
const testHelpers = em.testHelpers; | |
testHelpers.importToContext(_pathUnranked, _text); | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:33:25.499Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/execute/sync | |
2021-09-13T19:33:25.499Z INFO webdriver: DATA { | |
script: 'return ((_pathUnranked, _text) => {\n' + | |
' const testHelpers = em.testHelpers;\n' + | |
' testHelpers.importToContext(_pathUnranked, _text);\n' + | |
' }).apply(null, arguments)', | |
args: [ [ '__ROOT__' ], '\n - a\n - b' ] | |
} | |
2021-09-13T19:33:25.728Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:25.728Z INFO webdriver: Retrying 1/100 | |
2021-09-13T19:33:25.728Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/execute/sync | |
2021-09-13T19:33:25.728Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "click home link to set the cursor to null"}}' | |
} | |
2021-09-13T19:33:26.099Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:26.044Z INFO webdriver: COMMAND executeScript("return (value => { | |
return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0; | |
}).apply(null, arguments)", <object>) | |
2021-09-13T19:33:26.044Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/execute/sync | |
2021-09-13T19:33:26.044Z INFO webdriver: DATA { | |
script: 'return (value => {\n' + | |
" return Array.from(document.getElementsByClassName('editable')).filter(element => element.innerHTML === value).length > 0;\n" + | |
' }).apply(null, arguments)', | |
args: [ 'b' ] | |
} | |
2021-09-13T19:33:26.099Z INFO webdriver: Retrying 33/100 | |
2021-09-13T19:33:26.099Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:26.099Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:26.405Z INFO webdriver: RESULT true | |
2021-09-13T19:33:26.405Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "b")]") | |
2021-09-13T19:33:26.405Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:26.405Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "b")]' | |
} | |
2021-09-13T19:33:26.978Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:26.947Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5004', ELEMENT: '5004' } | |
2021-09-13T19:33:26.950Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "b")]") | |
2021-09-13T19:33:26.950Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:26.950Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "b")]' | |
} | |
2021-09-13T19:33:26.978Z INFO webdriver: Retrying 2/100 | |
2021-09-13T19:33:26.978Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/execute/sync | |
2021-09-13T19:33:26.978Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionName", "arguments": {"name": "click home link to set the cursor to null"}}' | |
} | |
2021-09-13T19:33:27.244Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:27.328Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:27.244Z INFO webdriver: Retrying 1/100 | |
2021-09-13T19:33:27.244Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:27.244Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "b")]' | |
} | |
2021-09-13T19:33:27.321Z INFO webdriver: RESULT {"automation_session":{"name":"click home link to set the cursor to null","duration":null,"os":"ios","os_version":"13.3","browser_version":null,"browser":null,"device":"iPhone 11","status":"running","hashed_id":"3f279e714726382b79694d8435c264fef2032a23","reason":null,"build_name":"[dev] Commit 3ef3f8d: Replace isPointInLeftDutter with SidebarGutter.\n\nRemoves direct DOM access and fixes functionality on iOS PWA. [Workflow: 565]","project_name":"em","build_hashed_id":"5509fe50089f6afe1ce2fd8f494d601b1f203c9e","test_priority":null}} | |
2021-09-13T19:33:27.329Z INFO webdriver: Retrying 34/100 | |
2021-09-13T19:33:27.329Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:27.329Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:27.972Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5005', ELEMENT: '5005' } | |
2021-09-13T19:33:27.975Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:33:27.975Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element/5005/click | |
2021-09-13T19:33:28.607Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:28.529Z INFO webdriver: COMMAND findElement("xpath", "//div[contains(@class,"editable") and contains(text(), "b")]") | |
2021-09-13T19:33:28.529Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:28.529Z INFO webdriver: DATA { | |
using: 'xpath', | |
value: '//div[contains(@class,"editable") and contains(text(), "b")]' | |
} | |
2021-09-13T19:33:28.607Z INFO webdriver: Retrying 35/100 | |
2021-09-13T19:33:28.607Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:28.607Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:29.059Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5006', ELEMENT: '5006' } | |
2021-09-13T19:33:29.063Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:33:29.063Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element/5006/click | |
2021-09-13T19:33:29.596Z INFO webdriver: COMMAND findElement("css selector", ".editing") | |
2021-09-13T19:33:29.597Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:29.597Z INFO webdriver: DATA { using: 'css selector', value: '.editing' } | |
2021-09-13T19:33:30.002Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:30.002Z INFO webdriver: Retrying 36/100 | |
2021-09-13T19:33:30.002Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:30.002Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:30.117Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5007', ELEMENT: '5007' } | |
2021-09-13T19:33:30.123Z INFO webdriver: COMMAND findElement("css selector", ".home a") | |
2021-09-13T19:33:30.123Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:30.123Z INFO webdriver: DATA { using: 'css selector', value: '.home a' } | |
2021-09-13T19:33:30.645Z INFO webdriver: RESULT { 'element-6066-11e4-a52e-4f735466cecf': '5008', ELEMENT: '5008' } | |
2021-09-13T19:33:30.651Z INFO webdriver: COMMAND elementClick("<Screenshot[base64]>") | |
2021-09-13T19:33:30.651Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element/5008/click | |
2021-09-13T19:33:31.180Z INFO webdriver: COMMAND findElement("css selector", ".editing") | |
2021-09-13T19:33:31.180Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23/element | |
2021-09-13T19:33:31.180Z INFO webdriver: DATA { using: 'css selector', value: '.editing' } | |
2021-09-13T19:33:31.390Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:31.390Z INFO webdriver: Retrying 37/100 | |
2021-09-13T19:33:31.390Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:31.390Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:32.099Z INFO webdriver: RESULT { | |
message: 'An element could not be located on the page using the given search parameters.' | |
} | |
Teardown Test Environment for webdriverio. | |
2021-09-13T19:33:32.106Z INFO webdriver: COMMAND deleteSession() | |
2021-09-13T19:33:32.106Z INFO webdriver: [DELETE] hub.browserstack.com/wd/hub/session/3f279e714726382b79694d8435c264fef2032a23 | |
2021-09-13T19:33:32.621Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:32.621Z INFO webdriver: Retrying 38/100 | |
2021-09-13T19:33:32.621Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:32.621Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
PASS src/e2e/iOS/__tests__/home.ts (18.693 s) | |
✓ click home link to set the cursor to null (9758 ms) | |
Test Suites: 1 failed, 2 passed, 3 total | |
Tests: 1 failed, 1 skipped, 11 passed, 13 total | |
Snapshots: 0 total | |
Time: 253.588 s | |
Ran all test suites matching /.\/src\/e2e\/iOS/i. | |
2021-09-13T19:33:32.980Z INFO webdriver: RESULT | |
2021-09-13T19:33:33.949Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:33.949Z INFO webdriver: Retrying 39/100 | |
2021-09-13T19:33:33.949Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:33.949Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
Jest did not exit one second after the test run has completed. | |
This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `--detectOpenHandles` to troubleshoot this issue. | |
2021-09-13T19:33:35.188Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:35.188Z INFO webdriver: Retrying 40/100 | |
2021-09-13T19:33:35.188Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:35.188Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:36.460Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:36.460Z INFO webdriver: Retrying 41/100 | |
2021-09-13T19:33:36.460Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:36.460Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:37.702Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:37.702Z INFO webdriver: Retrying 42/100 | |
2021-09-13T19:33:37.702Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:37.702Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:38.989Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:38.990Z INFO webdriver: Retrying 43/100 | |
2021-09-13T19:33:38.990Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:38.990Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:40.280Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:40.280Z INFO webdriver: Retrying 44/100 | |
2021-09-13T19:33:40.280Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:40.280Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:41.543Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:41.543Z INFO webdriver: Retrying 45/100 | |
2021-09-13T19:33:41.544Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:41.544Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:42.813Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:42.813Z INFO webdriver: Retrying 46/100 | |
2021-09-13T19:33:42.814Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:42.814Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:44.063Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:44.063Z INFO webdriver: Retrying 47/100 | |
2021-09-13T19:33:44.063Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:44.064Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:45.480Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:45.480Z INFO webdriver: Retrying 48/100 | |
2021-09-13T19:33:45.481Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:45.481Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:46.734Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:46.734Z INFO webdriver: Retrying 49/100 | |
2021-09-13T19:33:46.735Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:46.735Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:48.061Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:48.061Z INFO webdriver: Retrying 50/100 | |
2021-09-13T19:33:48.061Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:48.062Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:49.319Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:49.319Z INFO webdriver: Retrying 51/100 | |
2021-09-13T19:33:49.319Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:49.319Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:50.586Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:50.586Z INFO webdriver: Retrying 52/100 | |
2021-09-13T19:33:50.587Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:50.587Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:51.834Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:51.834Z INFO webdriver: Retrying 53/100 | |
2021-09-13T19:33:51.834Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:51.834Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:53.108Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:53.108Z INFO webdriver: Retrying 54/100 | |
2021-09-13T19:33:53.108Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:53.108Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:54.443Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:54.443Z INFO webdriver: Retrying 55/100 | |
2021-09-13T19:33:54.443Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:54.443Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:55.743Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:55.743Z INFO webdriver: Retrying 56/100 | |
2021-09-13T19:33:55.743Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:55.743Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:56.991Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:56.991Z INFO webdriver: Retrying 57/100 | |
2021-09-13T19:33:56.991Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:56.991Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:58.310Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:58.310Z INFO webdriver: Retrying 58/100 | |
2021-09-13T19:33:58.310Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:58.310Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:33:59.588Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:33:59.588Z INFO webdriver: Retrying 59/100 | |
2021-09-13T19:33:59.588Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:33:59.588Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:01.058Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:01.058Z INFO webdriver: Retrying 60/100 | |
2021-09-13T19:34:01.058Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:01.058Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:02.298Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:02.298Z INFO webdriver: Retrying 61/100 | |
2021-09-13T19:34:02.299Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:02.299Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:03.693Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:03.693Z INFO webdriver: Retrying 62/100 | |
2021-09-13T19:34:03.693Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:03.693Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:04.981Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:04.981Z INFO webdriver: Retrying 63/100 | |
2021-09-13T19:34:04.981Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:04.981Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:06.449Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:06.449Z INFO webdriver: Retrying 64/100 | |
2021-09-13T19:34:06.449Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:06.449Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:07.921Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:07.921Z INFO webdriver: Retrying 65/100 | |
2021-09-13T19:34:07.921Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:07.921Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:09.612Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:09.612Z INFO webdriver: Retrying 66/100 | |
2021-09-13T19:34:09.612Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:09.612Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:11.079Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:11.079Z INFO webdriver: Retrying 67/100 | |
2021-09-13T19:34:11.079Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:11.079Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:12.520Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:12.520Z INFO webdriver: Retrying 68/100 | |
2021-09-13T19:34:12.521Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:12.521Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:14.131Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:14.131Z INFO webdriver: Retrying 69/100 | |
2021-09-13T19:34:14.131Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:14.131Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:15.600Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:15.600Z INFO webdriver: Retrying 70/100 | |
2021-09-13T19:34:15.600Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:15.600Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:17.044Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:17.044Z INFO webdriver: Retrying 71/100 | |
2021-09-13T19:34:17.044Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:17.044Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:18.512Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:18.512Z INFO webdriver: Retrying 72/100 | |
2021-09-13T19:34:18.512Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:18.512Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:19.952Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:19.953Z INFO webdriver: Retrying 73/100 | |
2021-09-13T19:34:19.953Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:19.953Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:21.391Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:21.391Z INFO webdriver: Retrying 74/100 | |
2021-09-13T19:34:21.391Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:21.391Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:22.835Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:22.835Z INFO webdriver: Retrying 75/100 | |
2021-09-13T19:34:22.835Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:22.835Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:24.293Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:24.293Z INFO webdriver: Retrying 76/100 | |
2021-09-13T19:34:24.293Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:24.293Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:25.745Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:25.745Z INFO webdriver: Retrying 77/100 | |
2021-09-13T19:34:25.745Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:25.745Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:27.236Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:27.236Z INFO webdriver: Retrying 78/100 | |
2021-09-13T19:34:27.236Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:27.237Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:28.704Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:28.704Z INFO webdriver: Retrying 79/100 | |
2021-09-13T19:34:28.704Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:28.704Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:30.560Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:30.560Z INFO webdriver: Retrying 80/100 | |
2021-09-13T19:34:30.560Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:30.560Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:32.001Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:32.002Z INFO webdriver: Retrying 81/100 | |
2021-09-13T19:34:32.002Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:32.002Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:33.459Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:33.459Z INFO webdriver: Retrying 82/100 | |
2021-09-13T19:34:33.459Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:33.459Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:34.943Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:34.943Z INFO webdriver: Retrying 83/100 | |
2021-09-13T19:34:34.943Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:34.943Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:36.404Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:36.404Z INFO webdriver: Retrying 84/100 | |
2021-09-13T19:34:36.404Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:36.404Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:37.838Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:37.838Z INFO webdriver: Retrying 85/100 | |
2021-09-13T19:34:37.838Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:37.838Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:39.312Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:39.312Z INFO webdriver: Retrying 86/100 | |
2021-09-13T19:34:39.312Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:39.312Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:40.847Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:40.847Z INFO webdriver: Retrying 87/100 | |
2021-09-13T19:34:40.847Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:40.847Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:42.297Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:42.297Z INFO webdriver: Retrying 88/100 | |
2021-09-13T19:34:42.297Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:42.297Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:44.297Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:44.297Z INFO webdriver: Retrying 89/100 | |
2021-09-13T19:34:44.297Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:44.298Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:45.794Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:45.794Z INFO webdriver: Retrying 90/100 | |
2021-09-13T19:34:45.795Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:45.795Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
2021-09-13T19:34:47.695Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
} | |
2021-09-13T19:34:47.695Z INFO webdriver: Retrying 91/100 | |
2021-09-13T19:34:47.696Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:47.696Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:49.319Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:49.320Z INFO webdriver: Retrying 92/100 | |
2021-09-13T19:34:49.320Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:49.320Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:50.952Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:50.952Z INFO webdriver: Retrying 93/100 | |
2021-09-13T19:34:50.952Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:50.952Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:52.397Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:52.398Z INFO webdriver: Retrying 94/100 | |
2021-09-13T19:34:52.398Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:52.398Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:53.859Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:53.859Z INFO webdriver: Retrying 95/100 | |
2021-09-13T19:34:53.859Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:53.860Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:55.309Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:55.309Z INFO webdriver: Retrying 96/100 | |
2021-09-13T19:34:55.310Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:55.310Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:56.757Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:56.757Z INFO webdriver: Retrying 97/100 | |
2021-09-13T19:34:56.757Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:56.757Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:34:58.397Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:34:58.397Z INFO webdriver: Retrying 98/100 | |
2021-09-13T19:34:58.397Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:34:58.397Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:35:00.070Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:35:00.070Z INFO webdriver: Retrying 99/100 | |
2021-09-13T19:35:00.070Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:35:00.070Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:35:01.756Z WARN webdriver: Request failed with status 404 due to Session not started or terminated | |
2021-09-13T19:35:01.756Z INFO webdriver: Retrying 100/100 | |
2021-09-13T19:35:01.756Z INFO webdriver: [POST] hub.browserstack.com/wd/hub/session/d70f146f22f183ad485c285c1287a1d15dcd2559/execute/sync | |
2021-09-13T19:35:01.756Z INFO webdriver: DATA { | |
script: 'browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"failed","reason": "Failed"}}' | |
} | |
2021-09-13T19:35:03.189Z ERROR webdriver: Request failed with status 404 due to Error: Session not started or terminated | |
(node:2229) UnhandledPromiseRejectionWarning: Error: Session not started or terminated | |
at Object.getErrorFromResponseBody (/home/runner/work/em/em/node_modules/webdriver/build/utils.js:189:12) | |
at WebDriverRequest._request (/home/runner/work/em/em/node_modules/webdriver/build/request.js:168:31) | |
at processTicksAndRejections (internal/process/task_queues.js:95:5) | |
at Browser.wrapCommandFn (/home/runner/work/em/em/node_modules/@wdio/utils/build/shim.js:78:29) | |
(Use `node --trace-warnings ...` to show where the warning was created) | |
(node:2229) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) | |
(node:2229) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. | |
error Command failed with exit code 1. | |
info Visit yarnpkg.com/en/docs/cli/run for documentation about this command. | |
Error: Process completed with exit code 1. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment