我正在做扩展工作,我需要将用户名/电子邮件和密码放到字段中,然后提交。
我已经在很多网站上实现了这一点,但我有困难,在少数网站,如"https://app.hubspot.com/login/“完成它。
当我使用javascript/Jquery的".val()“方法放置值时,我会将该值显示到用户名输入中,但是通过检查元素,value属性将保持空白。
我甚至尝试使用javascript的"setAttribute()“方法放置属性。
我已经设法将该值放置到textbox中,但当我单击用户名textbox时,该值将为空。
除了用户名文本框之外。如果我尝试将值放入密码字段,它不会在焦点或模糊处出现空白,但是使用javascript放置值并不会使登录按钮可点击。但当我用键盘打字时。一切都是正常的,就像它预期的那样。唯一的问题是可以通过javascript登录。
当我试图触发单击事件时,它什么也不做。当我试图直接开火的时候,它什么也做不了。当我试图激发,但找到最接近的形式元素,然后提交它只是刷新。
我甚至尝试使用以下方法来模拟输入
var item = jQuery("#username");
jQuery(item).focus();
jQuery(item).keydown();
jQuery(item).keypress({which: 'A'.charCodeAt(0)});
jQuery(item).keyup();
jQuery(item).change();
jQuery(item).blur();我现在不知道我需要做什么来实现这几个网站。
请注意:-我已经在浏览器控制台中尝试了所有这些,
我真的很感激你的时间和帮助
非常感谢大家。
发布于 2018-08-29 12:13:32
据我对这个网站的理解,https://app.hubspot.com/login/是使用React开发的,通过使用javascript/Jquery直接针对元素来修改DOM无助于帮助,因为react保持了一个虚拟的dom,它在每次更改时都会更新它,最后将其与真实的dom进行比较,并将缺失的更改应用到真实的dom中。
在您的示例中,当您通过javascript/Jquery针对任何元素并更改任何值时,您正在更新的是真正的dom,但是这些更改在虚拟dom中没有得到更新,因此当您开始手动与站点交互时,您的更改不会反映出来。
https://stackoverflow.com/questions/52076670
复制相似问题