所以我试图了解元素" g-recaptcha-response"当验证码出现时,它只显示在websource中(如果要查找此元素,则需要输入错误的名称和密码几次) 这个验证码一直对我来说是好的,因为我试图通过它的ID找到该特定元素,如果你在验证码在那里检查websource你将能够CTRL + F并搜索它和它会出现,但它有点透明?这让我觉得它隐藏了,这就是问题所在。
当我尝试捕获它并给它一个值时,它会抛出这个错误。
System.NullReferenceException:'对象引用未设置为 对象的实例。'
private void LoadRS()
{
webBrowser1.Navigate("https://secure.runescape.com/m=weblogin/loginform.ws?mod=www&ssl=0&dest=community");
webBrowser1.Document.GetElementById("g-recaptcha-response").InnerHtml = "something";
}
有什么想法吗?
修改
我在质疑为什么我可以在Chrome上的元素编辑器中看到该元素,而不是在右键点击网页时我被告知这是因为
页面源是初始加载html页面时的内容 inspect元素将显示所有东西,注入的东西 js等
现在我需要弄清楚如何使用C#
获取该元素答案 0 :(得分:0)
这是因为元素(“g-recaptcha-response”)是由应用程序逻辑(可能是JavaScript)生成的。 我们需要在获取元素之前触发元素生成。
我们可以尝试单击提交/登录按钮来强制生成元素(“g-recaptcha-response”)。例如,在JavaScript中:
var loginButton = document.querySelector("input[type=submit]");
loginButton.click();
// Add some delay to wait for proper element generation, probably not needed
setTimeout(function() {
var recaptchaID = document.getElementById("g-recaptcha-response");
}, 1000);