将值输入到输入(用户名,密码,电子邮件等)中,然后使用javascript提交

时间:2018-08-29 11:45:28

标签: javascript web autologin

我正在扩展,我需要在字段中输入用户名/电子邮件和密码,然后提交。

我在许多网站上都实现了这一目标,但是在诸如“ https://app.hubspot.com/login/”这样的少数网站上却很难做到。

当我使用javascript / Jquery的“ .val()”方法放置值时,将其显示为用户名输入中的值,但是value属性保持空白,通过检查元素进行了检查。

我什至尝试使用javascript的“ setAttribute()”方法放置属性。

我设法将值放入文本框中,但是当我单击用户名文本框时,该值将为空白。

除了“用户名”文本框。如果我尝试将值输入密码字段,则不会使焦点或模糊不清,但是使用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();

我现在不知道要在这几个网站上实现此目标需要做什么。

请注意:-我已经尝试将所有这些都输入浏览器控制台本身

非常感谢您的时间和帮助

非常感谢大家。

1 个答案:

答案 0 :(得分:0)

根据我的理解对于此站点https://app.hubspot.com/login/是使用React JS通过使用javascript / Jquery定位元素直接对DOM进行更改而开发的,这无济于事,因为react会保留一个虚拟dom,它会在每次更改时进行更新,最后与真实dom进行比较,并将缺失的更改应用于真实dom

在这种情况下,当您通过javascript / Jquery定位任何元素并更改任何值时,您将更新真实dom,但这些更改不会在虚拟dom中更新,因此,当您开始手动与网站进行交互时,您的更改不会反映出来。