远程Experitest环境Chrome v91版本下搜索框功能异常问题排查
Chrome 91远程环境搜索框赋值异常修复方案
问题根因
Chrome 91版本存在输入框事件触发、地理位置权限处理的已知兼容性问题,且Experitest远程环境的元素焦点、前端事件触发逻辑和本地桌面Chrome不一致,导致setText赋值后前端未识别到内容变更,触发了默认的最近位置搜索逻辑。
修复方案
- 输入框操作前先强制激活元素、清空默认值,赋值后主动触发前端监听的输入事件,适配Chrome 91的事件触发逻辑,修改后的代码如下:
if (Region().contains("IN")) { // 先点击激活输入框,获取焦点 clickElement(this.gbnlPostcodeinputfield); // 清空输入框原有默认内容/自动填充值 clearElementText(this.gbnlPostcodeinputfield); // 短延迟适配Chrome91的输入状态同步 Thread.sleep(100); setText(this.gbnlPostcodeinputfield, Location); // 主动触发输入、变更事件,让前端识别到内容更新 executeScript("arguments[0].dispatchEvent(new Event('input'))", this.gbnlPostcodeinputfield); executeScript("arguments[0].dispatchEvent(new Event('change'))", this.gbnlPostcodeinputfield); gbnlsearchButton.waitUntilClickable().click(); clickElement(this.gbBookbutton); }
- 给远程Chrome 91的启动参数添加
--disable-geolocation,禁用页面默认的地理位置获取权限,避免页面加载完成后自动调用位置接口获取附近门店信息,覆盖输入的指定数据。 - 将原有的页面加载等待逻辑,替换为等待邮编输入框处于可编辑状态后再执行后续操作,避免元素还未完成可交互状态初始化就执行赋值,导致输入失效。
- 若上述方案仍未解决,可将
setText方法替换为模拟键盘逐字输入的sendKeys实现,避免Chrome 91对JS直接赋值的输入方式未触发校验逻辑。
内容的提问来源于stack exchange,提问作者irshadmohammed yakubkhan
相关产品推荐
相关产品推荐

