无法点击从提取的网页的特定区域中提取的所有链接

时间:2015-12-16 15:08:59

标签: selenium-webdriver

当我去仪表板的bbc.com时我们有新闻,运动,天气,商店,地球不同的链接所以当代码运行时导航到第一个链接或屏幕对下一个元素进行点击操作然后它获得停止我想点击所有新闻,体育,天气,商店的链接。请帮忙

WebDriver driver = new FirefoxDriver();
@Test
public void snapage() throws InterruptedException{
driver.get(" http://www.bbc.com/");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS);
WebElement J= driver.findElement(By.xpath(".//*[@id='orb-header']"));
String one=".//*[@id='orb-nav-links']/ul/li[";
String two="]/a";
Thread.sleep(2000);
for(int i=1;i<=8;i++){
String text=driver.findElement(By.xpath(one+i+two)).getText();
System.out.println(text);
driver.findElement(By.xpath(one+i+two)).click();

1 个答案:

答案 0 :(得分:0)

您可以在此处遵循的一种方法是,您可以一次提取所有显示的链接,然后一次导航到这些链接。您可以参考以下代码段:

public void clickBanners(){
        bannerLinks = new HashSet<String>();

            List<WebElement> banners = driver.findElements(By.xpath("<xPath_of_links>"));           

            for(WebElement banner : banners){
                bannerLinks.add(banner.getAttribute("href"));
            }

            for(String bannerLink : bannerLinks){
                driver.navigate().to(bannerLink);
                }
        }

请告诉我们这是否有助于您解决问题。