无法使用Selenium webdriver和Java打开页面上的URL

时间:2014-04-02 12:04:01

标签: selenium selenium-webdriver

我使用Selenium webdriver和Java编写了一个代码,用于打开网页上某个特定div中列出的URL。

代码打开第一个URL返回到网页并抛出错误“未在缓存中找到元素” - 也许页面自查找以来已更改。

请找代码参考。

import java.util.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class OpenLinks {
    public static void OpenLinkAs(String username, String password) throws Exception 
    {
        WebDriver driver;
        driver = new FirefoxDriver();
         driver.get("http://stg.n**w.le****ine.com/");        
        driver.findElement(By.name("username")).sendKeys(username);
        driver.findElement(By.name("password")).sendKeys(password);
        driver.findElement(By.xpath("/html/body/div/div/div[2]/div/form/p[3]/input")).submit(); 

        String content = driver.getPageSource();

        if (content.contains("Create new Project"))
        {

            List<WebElement> elementsList =  driver.findElements(By.xpath("//div[@class='recent-project block-link']"));
            int RowCount = elementsList.size();
            System.out.println(RowCount);
            System.out.println(elementsList);
             for (int i = 0; i < RowCount; i++)
             {
                 //String oldTab = driver.getWindowHandle();
                 WebElement url = elementsList.get(i);
                 //String text= url.getText();
                 System.out.println(url);
                // System.out.println(text);
                 url.click();
                 Thread.sleep(5*1000);
                 driver.navigate().back();
                 //driver.switchTo().window(oldTab);
             }
        }
}

    public static void main(String[] args) throws Exception
    {
       OpenLinkAs("username", "password");

    }

}

1 个答案:

答案 0 :(得分:0)

如果在页面上找不到该元素,则可能已将其丢弃在DOM中。再次声明并尝试单击它。

在堆栈跟踪中返回什么,即代码中的哪一点是抛出的错误?