打开所有链接 - 验证某些条件

时间:2016-03-20 13:34:26

标签: java selenium selenium-webdriver automated-tests selenide

我需要打开特定网址页面中的所有链接。如果链接打开,我需要检查页面内容并验证它不包含特定文本。

我使用了基于硒的Selenide,并尝试了以下方法:

String[] links = null;
int linksCount = 0;
 System.setProperty("webdriver.chrome.driver", "Resources/chromedriver1.exe");
     WebDriverRunner.setWebDriver(new ChromeDriver());   
     driver= WebDriverRunner.getWebDriver();
    open("myURL");
    List<WebElement> linksize =      WebDriverRunner.getWebDriver().findElements(By.tagName("a")); 
    linksCount = linksize.size();
    out.println("Total no of links Available: "+linksCount);
    links= new String[linksCount];
    out.println("List of links Available: ");  
    // print all the links from webpage 
    for(int i=0;i<linksCount;i++)
    {
    links[i] = linksize.get(i).getAttribute("href");
    System.out.println(linksize.get(i).getAttribute("href"));
    } 
    // navigate to each Link on the webpage
    for(int i=0;i<linksCount;i++)
    {
        if(links[i] != null)
            {
                if(!links[i].contains("javascript"))
                {
                    System.out.println(links[i]);
                    driver.navigate().to(links[i]);
                    Selenide.sleep(7);
                    WebElement error = $(Selectors.byText("no information!")); 
                    $(error).shouldNotBe(visible)
                    .shouldNotBe(text("information!"));
                }
            }

    }

我在此link中使用了相同的解决方案。但在检查时我有这个例外:

  

未知错误:未处理的检查员错误:{“code”: - 32603,“message”:“无法导航到无效的网址”}     (会议信息:chrome = 49.0.2623.87)

     

org.openqa.selenium.WebDriverException:未知错误:未处理的检查员错误:{“code”: - 32603,“message”:“无法导航到无效的网址”}     (会话信息:chrome = 49.0.2623.87)     (驱动程序信息:chromedriver = 2.9.248315,platform = Windows NT 6.1 SP1 x86)(警告:服务器未提供任何堆栈跟踪信息)   命令持续时间或超时:4毫秒   构建信息:版本:'2.50.1',修订版:'d7fc91b',时间:'2016-01-29 19:04:49'

我使用了来自here

的Chrome驱动程序版本

可能产生此错误的原因是什么?

2 个答案:

答案 0 :(得分:1)

从您发布的错误日志中,清楚显示&#34;无法导航到无效的网址&#34;。提供有效的网址并检查 - 谢谢

答案 1 :(得分:1)

几乎可以肯定,在您浏览链接之前很久就会失败。

以下行will try to load显然不是有效的网址,这完全解释了您所遇到的错误。

open("myURL");

大概你打算传入一个名为myURL的变量?