近期使用C#WinFrom内镶CEF实现爬虫功能时遇见input赋值无效的坑
故事的过程
在调用JS代码
document.getElementsByTagName(‘tbody’)[0].children[0].getElementsByTagName(‘input’)[0].value=‘3’
时.执行结果很美好,页面上的数值变动了.最终提交会提示你无效输入.
经过将近2天的摸爬滚打,终于搞明白什么情况了.
部分网站在制作过程中,使用了框架.
因此你仅仅怼value赋值是不行的.对方框架对应的输入框并没有收到你输入的值.
这时候要怎么办呢?
无尽尝试后发现.对方输入框所有监听的事件中有如下几个:
1.change
2.click
3.copy
4.message
…等等十余种事件.不全部列举了.
根据其监听的事件分析.无外乎就是你要先 click 之后 开始接收 message 最终 change
好吧.就是看你是不是人输入的呗.
那么我们方法就来了.通过JS代码让他点击,让他激活,让他有值,最后让他改变了.
下面来干货
解决方案
//激活给与焦点----不一定真的有反应
document.getElementsByTagName('tbody')[