选择框的变更触发

我们在一个具体案例里面,遇到如下的一个网站:
选择框的变更触发

很普通的一个页面对吧?
他奇怪的是,手工输入,一切正常,但是自动设置,会出现一个 404 错误,不能登录
我们经过测试,缩小的范围,发现‘省份’这个字段,自动选择会出错,我们检查了一下代码:
选择框的变更触发

我们开始以为是 onchange 的问题,我们测试一下,现在的 select 组件可以触发 onchange,大家可以用 [这个页面](https://www.plus2net.com/javascript_tutorial/listbox-onchange-demo.php来测试 onchange 功能。
那么应该是<select>元素中这其他的一堆东西没能触发,我们于是采用人工模拟大法:
- 首先设置好值(注意设置值会导致拾取焦点,所以我们统一设置值)
- 我们点 select 的前序元素 - 密码
- 我们键盘输入控件 - 按下 tab 键
- 焦点来到 seletor 上,我们按一下下键,等一下,再按一下上键,等一下(注意你的选择是第一个或者最后一个的时候要当心
- 好了,完成其他步骤,点击登录,大功告成
选择框的变更触发

总结一下经验:

有很多网页页面需要点一下触发可操作的界面或者触发 onchange 类似的事件,这时候需要关注焦点(焦点一般有个顺序,并使用 tab 切换),模拟人工操作来触发相应事件。