Я пытался запустить несколько URL одновременно, чтобы проверить, не подключены ли они к сети или онлайн. но через много минут эта ошибка появилась. Я предполагаю, что он может работать только до 117 ссылок одновременно? есть ли исправление для этого?
Ошибка: исключение в потоке "AWT-EventQueue-0" java .lang.IndexOutOfBoundsException: индекс 117 вне границ для длины 117
может кто-то помочь мне с этой ошибкой?
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class BrokenLink {
public static void main(String[] args) throws AWTException {
// TODO Auto-generated method stub
Robot rob = new Robot();
JFrame frame = new JFrame("Broken Link Checker");
JButton runUrls= new JButton("Run");
JLabel urlText = new JLabel(); //Initialize Label
JTextArea urlTextContainer= new JTextArea(); //Initialize Text Area
runUrls.setBounds(250, 275, 100, 50); // X,Y,Height,Width
urlText.setText("Enter URLs Here: ");
urlText.setBounds(30, -10, 200, 100);
urlTextContainer.setBounds(30,55,520,215);
frame.add(runUrls);
frame.add(urlText);
frame.add(urlTextContainer);
frame.setSize(600,400);
frame.setLayout(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
runUrls.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\awoo\\eclipse-workspace\\KeywordSearch\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
HttpURLConnection huc = null;
int respCode = 200;
// TODO Auto-generated method stub
String[] urls = urlTextContainer.getText().split("\n");
driver.get(urls[0]);
try {
huc = (HttpURLConnection)(new URL(driver.getCurrentUrl()).openConnection());
huc.setRequestMethod("HEAD");
huc.connect();
respCode = huc.getResponseCode();
if (respCode != 200) {
System.out.println(driver.getCurrentUrl());
}
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
for(int i = 1; i < urls.length; i++) {
rob.keyPress(KeyEvent.VK_CONTROL);
rob.keyPress(KeyEvent.VK_T);
rob.keyRelease(KeyEvent.VK_CONTROL);
rob.keyRelease(KeyEvent.VK_T);
ArrayList<String> newtab = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window((String) newtab.get(i));
driver.get(urls[i]);
try {
huc = (HttpURLConnection)(new URL(driver.getCurrentUrl()).openConnection());
huc.setRequestMethod("HEAD");
huc.connect();
respCode = huc.getResponseCode();
if (respCode != 200) {
System.out.println(driver.getCurrentUrl());
}
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
}
}