如何解决通过Appium更改iframe焦点无法正常工作
我正在使用 nightwatchjs 框架和 浏览器堆栈 在“真实”移动设备上运行它们。
我的最终目标是通过单击cookie iframe中的“全部接受”按钮来删除cookie政策。
我遇到的问题是,我可以将焦点更改为Android设备上的iframe,但是相同的代码在iOS设备上不起作用。
经过研究,我发现我需要“定义”测试(和iframe)所基于的域。这是在Appium文档here中定义的。
因此,有关iframe的html是;
并且我已将cookie删除脚本更改为读取;
this.pause(5000);
this.domain = 'cmp.parkers.co.uk';
this.element('css selector','iframe[id*="sp_message_iframe"]',function (result) {
var mainFrame = result.value;
this.frame(mainFrame,function () {
this.waitForElementPresent('.message-container',10000,false);
this.click('button[aria-label="Accept All"]');
this.pause(5000);
this.frameParent();
});
});
return this;
};
当我在Browserstack中的Android设备上运行此程序时,cookie策略窗口已成功关闭(因为已成功按下“接受全部”按钮)。
但是,当我在Browserstack中为iOS设备运行相同的脚本时,会收到以下错误消息;
Appium错误:处理时发生未知的服务器端错误 命令。原始错误:阻止了具有原点的框架 “ https://www.parkers.co.uk”访问跨域框架。 协议,域和端口必须匹配。
我尝试将域更改为 www.parkers.co.uk 和 parkers.co.uk >但这仍然失败。
我还尝试将iframe ID更改为 // iframe [src =“ cmp.parkers.co.uk”] *,但这再次失败。
我在这里显然做错了什么(域代码在错误的位置,错误的域,错误的iframe等),因为我似乎无法弄清楚为什么它在iOS设备中会失败。
任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。