首页 > 解决方案 > 我不能运行超过 117 个网址

问题描述

我试图同时运行多个 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();
                    }
                }
            }
        });
        }

    }

标签: seleniumselenium-webdriver

解决方案


推荐阅读