Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clicking a hyperlink in Webview not working #2536

Open
westpacqe opened this issue Mar 16, 2025 · 1 comment
Open

Clicking a hyperlink in Webview not working #2536

westpacqe opened this issue Mar 16, 2025 · 1 comment

Comments

@westpacqe
Copy link

westpacqe commented Mar 16, 2025

Here is my code
await switchDriverTo('webview'); await switchWindowHandle(); const element = $('//div[@data-testid="alert-message"]//a[contains(text(),"contact us")]'); await element.scrollIntoView(); await element.waitForClickable() await element.click() console.log(await element.isClickable()) await driver.pause(5000)

And here is the logs

Contexts available NATIVE_APP,WEBVIEW_1645.4
[0-2] Switching context to Webview
[0-2] 2025-03-16T22:30:32.624Z INFO webdriver: COMMAND switchContext("WEBVIEW_1645.4")
[0-2] 2025-03-16T22:30:32.625Z INFO webdriver: [POST] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.625Z INFO webdriver: DATA { name: 'WEBVIEW_1645.4' }
[0-2] 2025-03-16T22:30:32.648Z INFO webdriver: RESULT null
[0-2] 2025-03-16T22:30:32.648Z INFO webdriver: COMMAND getWindowHandles()
[0-2] 2025-03-16T22:30:32.648Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/window/handles
[0-2] 2025-03-16T22:30:32.654Z INFO webdriver: RESULT [ '1645.4' ]
[0-2] Windows available 1645.4
[0-2] 2025-03-16T22:30:32.654Z INFO webdriver: COMMAND findElement("xpath", "//div[@data-testid="alert-message"]//a[contains(text(),"contact us")]")
[0-2] 2025-03-16T22:30:32.654Z INFO webdriver: [POST] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/element
[0-2] 2025-03-16T22:30:32.654Z INFO webdriver: DATA {
[0-2] using: 'xpath',
[0-2] value: '//div[@data-testid="alert-message"]//a[contains(text(),"contact us")]'
[0-2] }
[0-2] 2025-03-16T22:30:32.683Z INFO webdriver: RESULT {
[0-2] 'element-6066-11e4-a52e-4f735466cecf': ':wdc:1742164232660',
[0-2] ELEMENT: ':wdc:1742164232660'
[0-2] }
[0-2] 2025-03-16T22:30:32.685Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.685Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.687Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.688Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.688Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.689Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.690Z INFO webdriver: COMMAND executeScript("
[0-2] var __defProp = Object.defineProperty;var __name = function (target, value) { return __defProp(target, 'name', { value: value, configurable: true }); };var __globalThis = (typeof globalThis === 'object' && globalThis) || (typeof window === 'object' && window);__globalThis.__name = __name;
[0-2] return ((elem, options2) => elem.scrollIntoView(options2)).apply(null, arguments)
[0-2] ", )
[0-2] 2025-03-16T22:30:32.690Z INFO webdriver: [POST] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/execute/sync
[0-2] 2025-03-16T22:30:32.690Z INFO webdriver: DATA {
[0-2] script: '\n' +
[0-2] " var __defProp = Object.defineProperty;var __name = function (target, value) { return __defProp(target, 'name', { value: value, configurable: true }); };var __globalThis = (typeof globalThis === 'object' && globalThis) || (typeof window === 'object' && window);__globalThis.__name = __name;\n" +
[0-2] ' return ((elem, options2) => elem.scrollIntoView(options2)).apply(null, arguments)\n' +
[0-2] ' ',
[0-2] args: [
[0-2] {
[0-2] 'element-6066-11e4-a52e-4f735466cecf': ':wdc:1742164232660',
[0-2] ELEMENT: ':wdc:1742164232660'
[0-2] },
[0-2] { block: 'start', inline: 'nearest' }
[0-2] ]
[0-2] }
[0-2] 2025-03-16T22:30:32.699Z INFO webdriver: RESULT null
[0-2] 2025-03-16T22:30:32.699Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.699Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.701Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.702Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.702Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.704Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.704Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.704Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.706Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.706Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.706Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.708Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.708Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.708Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.709Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.710Z INFO webdriver: COMMAND isElementDisplayed(":wdc:1742164232660")
[0-2] 2025-03-16T22:30:32.710Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/element/%3Awdc%3A1742164232660/displayed
[0-2] 2025-03-16T22:30:32.733Z INFO webdriver: RESULT true
[0-2] 2025-03-16T22:30:32.733Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.734Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.735Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.736Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.736Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.737Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.737Z INFO webdriver: COMMAND executeScript("
[0-2] var __defProp = Object.defineProperty;var __name = function (target, value) { return __defProp(target, 'name', { value: value, configurable: true }); };var __globalThis = (typeof globalThis === 'object' && globalThis) || (typeof window === 'object' && window);__globalThis.__name = __name;
[0-2] return (function isElementClickable(elem) {
[0-2] if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {
[0-2] return false;
[0-2] }
[0-2] const isOldEdge = !!window.StyleMedia;
[0-2] const scrollIntoViewFullSupport = !(window.safari || isOldEdge);
[0-2] function getOverlappingElement(elem2, context) {
[0-2] context = context || document;
[0-2] const elemDimension = elem2.getBoundingClientRect();
[0-2] const x = elemDimension.left + elem2.clientWidth / 2;
[0-2] const y = elemDimension.top + elem2.clientHeight / 2;
[0-2] return context.elementFromPoint(x, y);
[0-2] }
[0-2] function getOverlappingRects(elem2, context) {
[0-2] context = context || document;
[0-2] const rects = elem2.getClientRects();
[0-2] const rect = rects[0];
[0-2] const x = rect.left + rect.width / 2;
[0-2] const y = rect.top + rect.height / 2;
[0-2] return [context.elementFromPoint(x, y)];
[0-2] }
[0-2] function getOverlappingElements(elem2, context) {
[0-2] return [getOverlappingElement(elem2, context)].concat(getOverlappingRects(elem2, context));
[0-2] }
[0-2] function nodeContains(elem2, otherNode) {
[0-2] if (isOldEdge) {
[0-2] let tmpElement = otherNode;
[0-2] while (tmpElement) {
[0-2] if (tmpElement === elem2) {
[0-2] return true;
[0-2] }
[0-2] tmpElement = tmpElement.parentNode;
[0-2] if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {
[0-2] tmpElement = tmpElement.host;
[0-2] }
[0-2] }
[0-2] return false;
[0-2] }
[0-2] return elem2.contains(otherNode);
[0-2] }
[0-2] function isOverlappingElementMatch(elementsFromPoint, elem2) {
[0-2] if (elementsFromPoint.some(function(elementFromPoint) {
[0-2] return elementFromPoint === elem2 || nodeContains(elem2, elementFromPoint);
[0-2] })) {
[0-2] return true;
[0-2] }
[0-2] let elemsWithShadowRoot = [].concat(elementsFromPoint);
[0-2] elemsWithShadowRoot = elemsWithShadowRoot.filter(function(x) {
[0-2] return x && x.shadowRoot && x.shadowRoot.elementFromPoint;
[0-2] });
[0-2] let shadowElementsFromPoint = [];
[0-2] for (let i = 0; i < elemsWithShadowRoot.length; ++i) {
[0-2] const shadowElement = elemsWithShadowRoot[i];
[0-2] shadowElementsFromPoint = shadowElementsFromPoint.concat(
[0-2] getOverlappingElements(elem2, shadowElement.shadowRoot)
[0-2] );
[0-2] }
[0-2] shadowElementsFromPoint = [].concat(shadowElementsFromPoint);
[0-2] shadowElementsFromPoint = shadowElementsFromPoint.filter(function(x) {
[0-2] return !elementsFromPoint.includes(x);
[0-2] });
[0-2] if (shadowElementsFromPoint.length === 0) {
[0-2] return false;
[0-2] }
[0-2] return isOverlappingElementMatch(shadowElementsFromPoint, elem2);
[0-2] }
[0-2] function isElementInViewport(elem2) {
[0-2] if (!elem2.getBoundingClientRect) {
[0-2] return false;
[0-2] }
[0-2] const rect = elem2.getBoundingClientRect();
[0-2] const windowHeight = window.innerHeight || document.documentElement.clientHeight;
[0-2] const windowWidth = window.innerWidth || document.documentElement.clientWidth;
[0-2] const vertInView = rect.top <= windowHeight && rect.top + rect.height > 0;
[0-2] const horInView = rect.left <= windowWidth && rect.left + rect.width > 0;
[0-2] return vertInView && horInView;
[0-2] }
[0-2] function isEnabled(elem2) {
[0-2] return elem2.disabled !== true;
[0-2] }
[0-2] function hasOverlaps(elem2) {
[0-2] return !isOverlappingElementMatch(getOverlappingElements(elem2), elem2);
[0-2] }
[0-2] function isFullyDisplayedInViewport(elem2) {
[0-2] return isElementInViewport(elem2) && !hasOverlaps(elem2);
[0-2] }
[0-2] let _isFullyDisplayedInViewport = isFullyDisplayedInViewport(elem);
[0-2] if (!_isFullyDisplayedInViewport) {
[0-2] const { x: originalX, y: originalY } = elem.getBoundingClientRect();
[0-2] elem.scrollIntoView(scrollIntoViewFullSupport ? { block: "center", inline: "center" } : false);
[0-2] _isFullyDisplayedInViewport = isFullyDisplayedInViewport(elem);
[0-2] const { x, y } = elem.getBoundingClientRect();
[0-2] if (x !== originalX || y !== originalY) {
[0-2] elem.scroll(scrollX, scrollY);
[0-2] }
[0-2] }
[0-2] return _isFullyDisplayedInViewport && isEnabled(elem);
[0-2] }).apply(null, arguments)
[0-2] ", )
[0-2] 2025-03-16T22:30:32.738Z INFO webdriver: [POST] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/execute/sync
[0-2] 2025-03-16T22:30:32.738Z INFO webdriver: DATA {
[0-2] script: 'isElementClickable(...) [4282 bytes]',
[0-2] args: [
[0-2] {
[0-2] 'element-6066-11e4-a52e-4f735466cecf': ':wdc:1742164232660',
[0-2] ELEMENT: ':wdc:1742164232660'
[0-2] }
[0-2] ]
[0-2] }
[0-2] 2025-03-16T22:30:32.748Z INFO webdriver: RESULT true
[0-2] 2025-03-16T22:30:32.748Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.748Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.752Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.752Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.752Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.753Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.754Z INFO webdriver: COMMAND elementClick(":wdc:1742164232660")
[0-2] 2025-03-16T22:30:32.754Z INFO webdriver: [POST] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/element/%3Awdc%3A1742164232660/click
[0-2] 2025-03-16T22:30:32.773Z INFO webdriver: RESULT null
[0-2] 2025-03-16T22:30:32.773Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.773Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.775Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.775Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.775Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.776Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.776Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.777Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.778Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.778Z INFO webdriver: COMMAND isElementDisplayed(":wdc:1742164232660")
[0-2] 2025-03-16T22:30:32.778Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/element/%3Awdc%3A1742164232660/displayed
[0-2] 2025-03-16T22:30:32.787Z INFO webdriver: RESULT true
[0-2] 2025-03-16T22:30:32.788Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.788Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.789Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.789Z INFO webdriver: COMMAND getContext()
[0-2] 2025-03-16T22:30:32.789Z INFO webdriver: [GET] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/context
[0-2] 2025-03-16T22:30:32.791Z INFO webdriver: RESULT WEBVIEW_1645.4
[0-2] 2025-03-16T22:30:32.791Z INFO webdriver: COMMAND executeScript("
[0-2] var __defProp = Object.defineProperty;var __name = function (target, value) { return __defProp(target, 'name', { value: value, configurable: true }); };var __globalThis = (typeof globalThis === 'object' && globalThis) || (typeof window === 'object' && window);__globalThis.__name = __name;
[0-2] return (function isElementClickable(elem) {
[0-2] if (!elem.getBoundingClientRect || !elem.scrollIntoView || !elem.contains || !elem.getClientRects || !document.elementFromPoint) {
[0-2] return false;
[0-2] }
[0-2] const isOldEdge = !!window.StyleMedia;
[0-2] const scrollIntoViewFullSupport = !(window.safari || isOldEdge);
[0-2] function getOverlappingElement(elem2, context) {
[0-2] context = context || document;
[0-2] const elemDimension = elem2.getBoundingClientRect();
[0-2] const x = elemDimension.left + elem2.clientWidth / 2;
[0-2] const y = elemDimension.top + elem2.clientHeight / 2;
[0-2] return context.elementFromPoint(x, y);
[0-2] }
[0-2] function getOverlappingRects(elem2, context) {
[0-2] context = context || document;
[0-2] const rects = elem2.getClientRects();
[0-2] const rect = rects[0];
[0-2] const x = rect.left + rect.width / 2;
[0-2] const y = rect.top + rect.height / 2;
[0-2] return [context.elementFromPoint(x, y)];
[0-2] }
[0-2] function getOverlappingElements(elem2, context) {
[0-2] return [getOverlappingElement(elem2, context)].concat(getOverlappingRects(elem2, context));
[0-2] }
[0-2] function nodeContains(elem2, otherNode) {
[0-2] if (isOldEdge) {
[0-2] let tmpElement = otherNode;
[0-2] while (tmpElement) {
[0-2] if (tmpElement === elem2) {
[0-2] return true;
[0-2] }
[0-2] tmpElement = tmpElement.parentNode;
[0-2] if (tmpElement && tmpElement.nodeType === 11 && tmpElement.host) {
[0-2] tmpElement = tmpElement.host;
[0-2] }
[0-2] }
[0-2] return false;
[0-2] }
[0-2] return elem2.contains(otherNode);
[0-2] }
[0-2] function isOverlappingElementMatch(elementsFromPoint, elem2) {
[0-2] if (elementsFromPoint.some(function(elementFromPoint) {
[0-2] return elementFromPoint === elem2 || nodeContains(elem2, elementFromPoint);
[0-2] })) {
[0-2] return true;
[0-2] }
[0-2] let elemsWithShadowRoot = [].concat(elementsFromPoint);
[0-2] elemsWithShadowRoot = elemsWithShadowRoot.filter(function(x) {
[0-2] return x && x.shadowRoot && x.shadowRoot.elementFromPoint;
[0-2] });
[0-2] let shadowElementsFromPoint = [];
[0-2] for (let i = 0; i < elemsWithShadowRoot.length; ++i) {
[0-2] const shadowElement = elemsWithShadowRoot[i];
[0-2] shadowElementsFromPoint = shadowElementsFromPoint.concat(
[0-2] getOverlappingElements(elem2, shadowElement.shadowRoot)
[0-2] );
[0-2] }
[0-2] shadowElementsFromPoint = [].concat(shadowElementsFromPoint);
[0-2] shadowElementsFromPoint = shadowElementsFromPoint.filter(function(x) {
[0-2] return !elementsFromPoint.includes(x);
[0-2] });
[0-2] if (shadowElementsFromPoint.length === 0) {
[0-2] return false;
[0-2] }
[0-2] return isOverlappingElementMatch(shadowElementsFromPoint, elem2);
[0-2] }
[0-2] function isElementInViewport(elem2) {
[0-2] if (!elem2.getBoundingClientRect) {
[0-2] return false;
[0-2] }
[0-2] const rect = elem2.getBoundingClientRect();
[0-2] const windowHeight = window.innerHeight || document.documentElement.clientHeight;
[0-2] const windowWidth = window.innerWidth || document.documentElement.clientWidth;
[0-2] const vertInView = rect.top <= windowHeight && rect.top + rect.height > 0;
[0-2] const horInView = rect.left <= windowWidth && rect.left + rect.width > 0;
[0-2] return vertInView && horInView;
[0-2] }
[0-2] function isEnabled(elem2) {
[0-2] return elem2.disabled !== true;
[0-2] }
[0-2] function hasOverlaps(elem2) {
[0-2] return !isOverlappingElementMatch(getOverlappingElements(elem2), elem2);
[0-2] }
[0-2] function isFullyDisplayedInViewport(elem2) {
[0-2] return isElementInViewport(elem2) && !hasOverlaps(elem2);
[0-2] }
[0-2] let _isFullyDisplayedInViewport = isFullyDisplayedInViewport(elem);
[0-2] if (!_isFullyDisplayedInViewport) {
[0-2] const { x: originalX, y: originalY } = elem.getBoundingClientRect();
[0-2] elem.scrollIntoView(scrollIntoViewFullSupport ? { block: "center", inline: "center" } : false);
[0-2] _isFullyDisplayedInViewport = isFullyDisplayedInViewport(elem);
[0-2] const { x, y } = elem.getBoundingClientRect();
[0-2] if (x !== originalX || y !== originalY) {
[0-2] elem.scroll(scrollX, scrollY);
[0-2] }
[0-2] }
[0-2] return _isFullyDisplayedInViewport && isEnabled(elem);
[0-2] }).apply(null, arguments)
[0-2] ", )
[0-2] 2025-03-16T22:30:32.791Z INFO webdriver: [POST] http://127.0.0.1:4723/session/7d032273-6f35-4abf-a9e8-3d7f6c5e19c5/execute/sync
[0-2] 2025-03-16T22:30:32.791Z INFO webdriver: DATA {
[0-2] script: 'isElementClickable(...) [4282 bytes]',
[0-2] args: [
[0-2] {
[0-2] 'element-6066-11e4-a52e-4f735466cecf': ':wdc:1742164232660',
[0-2] ELEMENT: ':wdc:1742164232660'
[0-2] }
[0-2] ]
[0-2] }
[0-2] 2025-03-16T22:30:32.797Z INFO webdriver: RESULT true
[0-2] true

I tried multiple ways on clicking the element but it is not doing anything. I tried double click, I tried click twice, I tried javascript way of click but none of them worked. And this is working fine in Android uiAutomator2 so not sure what is special in iOS as it is the same webview.

@daniel-urrutia
Copy link

Able to reproduce this as well with the following options

new XCUITestOptions()
        .setPlatformVersion("18.2")
        .setPlatformName("iOS")
        .withBrowserName("Safari")
        .setAutomationName("XCUITest")
        .setDeviceName(environment().device())
        .setAutoAcceptAlerts(true);

Trying to click on WebElement in Web context is not registering

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants