gpt4 book ai didi

java - 如何使用 java 中的 HtmlUnit 从 HTML 中不在 Form 元素中的 textarea 复制数据?

转载 作者:行者123 更新时间:2023-11-30 10:18:21 27 4
gpt4 key购买 nike

我正在使用 https://www.base64decode.org/在 java 中使用 htmlunit 解码编码文本。

这是网站的html代码

  <form name="convert_text" method="post" action="/">
<textarea name="input" placeholder="Type (or paste) here..."></textarea>
<button type="submit" name="decode" value="decode"><i class="fa fa-chevron-left"></i>DECODE<i class="fa fa-chevron-right"></i></button>
<select name="charset"><option value="UTF-8">UTF-8</option><option value="ASCII">ASCII</option><option value="CP1256">CP1256</option><option value="ISO-8859-1">ISO-8859-1</option><option value="ISO-8859-2">ISO-8859-2</option><option value="ISO-8859-6">ISO-8859-6</option><option value="ISO-8859-15">ISO-8859-15</option><option value="Windows-1252">Windows-1252</option></select>
<span>You may also select input charset.</span>
<div class="clear"></div>
</form>
<textarea name="output" placeholder="Result goes here..."></textarea>

这是我的 Decode.java 代码

    public class Decode {
public static void de(String str){
WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setJavaScriptEnabled(false);
try{
HtmlPage page = webClient.getPage("https://www.base64decode.org/");
HtmlForm form = page.getFormByName("convert_text");


HtmlTextArea content = form.getTextAreaByName("input");
content.setText(str);

HtmlElement button = form.getButtonByName("decode");
button.click();


HtmlTextArea contentArea = form.getTextAreaByName("output"); //can't use Htmlform, as textarea is outside form element
String st = contentArea.getText();
System.out.println(st);

}
catch(Exception e){System.out.print(e);}



}
}

我如何在第二个文本区域中设置文本(它在表单元素之外)?

最佳答案

这里有一个工作示例:

  • 如果您想模拟用户输入,请使用 type() 方法
  • 使用 getElementByName() 查找具有名称的元素(此页面 http://htmlunit.sourceforge.net/gettingStarted.html 有更多关于查找元素的提示)
  • 您的代码必须将生成的页面视为单击按钮的结果/响应

希望对您有所帮助。

public static void main(String[] args) {
String str = "SHRtbFVuaXQgaXMgZ3JlYXQ=";
WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setJavaScriptEnabled(false);

try{
HtmlPage page = webClient.getPage("https://www.base64decode.org/");
HtmlForm form = page.getFormByName("convert_text");

HtmlTextArea content = form.getTextAreaByName("input");
content.type(str);

HtmlElement button = form.getButtonByName("decode");
HtmlPage resultPage = button.click();

HtmlTextArea contentArea = (HtmlTextArea) resultPage.getElementByName("output");
String st = contentArea.getText();
System.out.println("Result: '" + st + "'");

} catch(Throwable e) {
e.printStackTrace();
}
}

关于java - 如何使用 java 中的 HtmlUnit 从 HTML 中不在 Form 元素中的 textarea 复制数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49335929/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com