java - Htmlunit 用 javascript 填写表单
问题描述
我想填写https://login.live.com/表格,但我不能。我不想使用 Chromium 嵌入式框架或 java Selenium。因为他们打开了浏览器。有没有办法在不打开浏览器的情况下做到这一点?
我尝试了 HtmlUnit,但出现了 javascript 问题:
WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setJavaScriptEnabled(true);
final HtmlPage page1 = webClient.getPage("https://login.live.com/en");
final HtmlForm form = (HtmlForm) page1.getElementById("i0281");
final HtmlTextInput textField = form.getInputByName("loginfmt");
textField.setValueAttribute("email");
错误信息:
线程“主”com.gargoylesoftware.htmlunit.ElementNotFoundException 中的异常:com.gargoylesoftware.htmlunit.html.HtmlForm.getInputByName(HtmlForm.java:572) 处的 elementName=[input] attributeName=[name] attributeValue=[loginfmt]
它可以在没有 javascript 的情况下工作 html 页面。
如果你不想要代码,你可以给我一些提示。你可以使用这个,或者你可以谷歌这个框架等......
谢谢
解决方案
推荐阅读
- ansible - 传递给角色的列表变量的 Ansible 条件
- reactjs - 在 ReactJS 中使用 SignaturePad
- json - 如何在 JSON 中使用逻辑运算符?
- ios - .Podfile.swp 和 Podfile.save 到底是什么
- c++ - 使用 C++20 概念模板函数特化时的依赖关系
- python - 如何使用 TensorFlow2 保存经过训练的神经网络
- python - 使用烧瓶重置全局变量的值
- vue.js - 使用 Gitlab CI 部署 Vue.js 构建
- python - Python:TypeError:不可散列的类型:“列表”索引必须是整数
- javascript - (节点:23042)UnhandledPromiseRejectionWarning:错误:找不到缓冲区的 MIME