当前位置: 首页 > 知识库问答 >
问题:

InvalidArgumentException:未知错误:不支持的协议

汪庆
2023-03-14

我在ArrayList中添加了来自Web页面的所有链接,然后逐一点击所有URL。

public class Redirectionlinked1 
{
    public static List findAllLinks(WebDriver driver)
    { 
        List <WebElement> elementList = new ArrayList();
        elementList = driver.findElements(By.tagName("a"));
        elementList.addAll(driver.findElements(By.tagName("img")));

        List finalList = new ArrayList();
        for(WebElement element : elementList)
        {
            if (element.getAttribute("href") != null)
            {
                finalList.add(element);
            }
        }
        return finalList;
    }

    public static void main(String[] args) throws Exception 
    {
        System.setProperty("webdriver.gecko.driver", "E:\\Softwares\\gecko\\geckodriver-v0.16.1-win64\\geckodriver.exe");
        System.setProperty("webdriver.chrome.driver", "E:\\chromedriver.exe");

        WebDriver driver = new ChromeDriver();
        driver.get(" http://testsite.com");
        List <WebElement > allImages = findAllLinks(driver);

        System.out.println("Total number of elements found " + allImages.size());
        driver = new ChromeDriver ();
        URI uri =null;
        for (WebElement element : allImages) {
        if (!driver.getCurrentUrl().equals(element.getAttribute("href")) && driver.)
        {
            driver.manage().deleteAllCookies();
            driver.get(element.getAttribute("href"));
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
            Thread.sleep(500);
            System.out.println(element.getAttribute("href"));
            uri = new URI(driver.getCurrentUrl());
            try 
            {
                if(uri.getHost().equalsIgnoreCase("SpecificDomain.net"))
                {
                    System.out.println(" Redirected URL-->> "+element.getAttribute("href"));
                }
            } 
            catch (Exception e) 
            {
                    e.printStackTrace();
            }
        }
   }
}

代码按预期工作(它在浏览器中启动URL),因为第一个链接稍后抛出错误:

Windows-7

Java-1.8.1

共有1个答案

傅彬
2023-03-14

升级您的selenium web驱动程序。这是webdriver和您的浏览器版本的兼容性问题。我用最新版本的chrome web驱动程序更新了我的pom文件,它起作用了。将chrome web驱动程序升级到3.9.1或更高版本也可以解决这个问题。

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-chrome-driver</artifactId>
    <version>4.0.0-alpha-5</version>
</dependency>
 类似资料:
  • 如何修复这个错误,发生在DebianLinux使用ssl命令与红宝石? /usr/lib/ruby/1.8/net/http.rb:586:在连接:SSL_connect返回=1 errno=0状态=未知状态:不支持的协议(OpenSSL::SSL::SSLError) 我找到了答案,我ḿ 将此作为其他用户的参考发布。

  • 我有一个脚本,它使用的Facebook向

  • 问题: 在我的应用程序中,我想通过cordova wkwebview访问图像。超文本标记语言元素如下所示。 加载时,我收到错误“加载资源失败:不支持的URL”。我正在使用iOS 10.2。 验证/尝试的事情: 如果选中文件夹“MyFolder”下的“cordova.file.dataDirectory”中存在的文件列表,我确实看到那里存在“file.jpg”。它的本机URL为文件:///var/m

  • 我发布了这个问题,我可以通过删除WebLogic startups参数来解决这个问题: 有人能解释一下吗?

  • 我使用混淆矩阵模块将类预测结果与实际值进行比较。 我得到了这个错误: 回溯(最后一次调用):文件“vis.py”,第757行,在cnf_矩阵=混乱矩阵(y_test,y_pred)文件“C:\Anaconda\envs\nn35\lib\site packages\sklearn\metrics\classification.py”第240行,混乱矩阵y_type,y_true,y_pred=_c

  • 下面的代码是TCP客户端的套接字编程示例。 但当我运行该操作时,connect()作为协议不支持的地址族返回。