我需要做的是浏览网页,登录,然后浏览到该网站上需要您登录的另一个网页,因此需要保存cookie.之后,我需要单击该页面上的一个元素,我将在其中填写表单并获取网页返回给我的消息.我需要实际进入页面并单击按钮的原因只是直接导航到链接是因为每次登录时都会为您分配一个会话ID并单击该链接,并且它始终不同.按钮看起来像这样,它不是正常的href链接:
<span id=":tv" idlink="" class="sA" tabindex="0" role="link">Next</span>
Run Code Online (Sandbox Code Playgroud)
无论如何,最简单的方法是什么?谢谢.
更新:在尝试了HTMLunit和其他无头浏览器库之后,它似乎并没有使用任何"无头"的东西.我最近发现的关于这个页面的另一件事是,所有HTML都是以某种奇怪的格式......它都在一个脚本标签内.这是一个例子.
"?ui\x3d2\x26view\x3dss\x26mset\x3dmain\x26ver\x3d-68igm85d1771\x26am\x3d!Zsl-0RZ-XLv0BO3aNKsL0sgMg3nH10t5WrPgJSU8CYS-KNWlyrLmiW3HvC5ykER_n_5dDw\x26fri"],"http://example.com/?ctx\x3d%67mail\x26hl\x3den",,0,"Gmail","Gmail",[["us","c130f0854ca2c2bb",[["n"],["m","New features!"],["u"],["k","0"],["p","1000:500000,10,200000,5,100000,3,75000,2,0,1"],["h","https://survey.googleratings.com/wix/p1679258.aspx?l\x3d1033"],["at","query,5,contacts,5,adv,5,cf,5,default,20"],["v","https://www.youtube.com/embed/Ra8HG6MkOXY?showinfo\x3d0"],
Run Code Online (Sandbox Code Playgroud)
当我检查按钮上的元素时,我在上面为按钮发布的HTML代码出现了,但在进行查看源时却没有.基本上,我需要做的是使用某种GUI并让用户导航到链接,然后让程序填写信息.有谁知道我怎么做到这一点?谢谢.
我需要做的是能够阻止从一个实现runnable的线程类运行的所有线程.这就是我的意思:这是我的"线程"类的开头:
public class HTTP extends Thread
{
int threadNumber;
String host;
int port;
int timeLeft;
private BufferedReader LocalBufferedReader;
public HTTP(int threadNumber, String host, int port, int timeLeft)
{
this.threadNumber = threadNumber;
this.host= host;
this.port = port;
this.timeLeft = (timeLeft * 1000);
}
public void run()
{
Run Code Online (Sandbox Code Playgroud)
这是我创建多个线程来执行此操作的方式:
for (int n = 1; n <= m; n++) {
new HTTP(n + 1, str, j, k).start();
}
Run Code Online (Sandbox Code Playgroud)
m是要创建的线程数.这可以是50-1000.现在我需要做的就是突然停止所有这些.我怎样才能做到这一点?
我需要做的是获取正在运行的jar/exe文件的名称(它将是Windows上的EXE,mac/linux上的jar).我一直在寻找,我似乎无法找到如何.
如何获得运行Jar或Exe的名称?
在我的程序中,我需要使用多个线程并编辑相同的变量,但它似乎不起作用.这是我的意思的一个例子,这将是我的主要课程.
public class MainClass {
public static int number = 0;
public static String num = Integer.toString(number);
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter number of threads.");
int threads = in.nextInt();
for (int n = 1; n <= threads; n++) {
java.lang.Thread t = new Thread();
t.start();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将是我的Thread类:
public class Thread extends java.lang.Thread
{
public void run()
{
MainClass.number++;
System.out.println("Thread started");
System.out.println(MainClass.num);
}
}
Run Code Online (Sandbox Code Playgroud)
我当场写了这段代码,所以可能会有一些错误,但没关系.我的程序基本上需要做这样的事情,但不是每次打印数字加1,所有线程只是打印相同的数字,0,多次.请帮帮我,谢谢.
我想用整个屏幕创建一个矩形.通过使用整个屏幕,我的意思是这样的:
首先,在Java中是否可以使用整个屏幕?第二,我该怎么做呢?另外一件事,我不想画一个实际的矩形,我想创建,就像在新的java.awt.Rectangle
.
这是我的代码.当我打印字符串cmd时,它打印出"print"但是,我的if statemnet仍然无法运行.这是我的代码:
public static void main(String[] args) throws InterruptedException {
String url = "http://xboxfl.co/java/inc/command.txt";
String cmd = Methods.getContents(url, "UTF-8");
System.out.println(cmd);
if(cmd.equalsIgnoreCase("print")){
System.out.println("it works");
}
}
Run Code Online (Sandbox Code Playgroud)
希望有人可以提供帮助.谢谢!