2017-05-04 8 views
0

Es können nicht alle Links von der Webseite abgerufen werden - Selenium Es können nicht alle Links von der Webseite mit dem unten angegebenen Code abgerufen werden. -Code unten:Alle Links von der Webseite können nicht abgerufen werden - Selenium

package config; 



import java.util.concurrent.TimeUnit; 
import java.util.List; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.interactions.Actions; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.support.ui.WebDriverWait; 
import org.testng.annotations.AfterTest; 
import org.testng.annotations.BeforeTest; 
import org.testng.annotations.Test; 

public class ActionKeywords { 
// WebDriver driver = new FirefoxDriver(); 

    WebDriver driver; 

    @BeforeTest 
    public void setup() 
    { 
     System.setProperty("webdriver.gecko.driver", "E:\\geckodriver-v0.16.1-win64\\geckodriver.exe"); 
     DesiredCapabilities dc = DesiredCapabilities.firefox(); 
     dc.setCapability("marionette", true); 
     driver = new FirefoxDriver(dc); 
     driver.manage().window().maximize(); 
    } 

    @Test 
    public void openBrowser(){ 
     driver.get("https://www.google.com/"); 
    } 



/* 
@Test 
    public void verify_Menus(){ 

     WebElement mainMenu = driver.findElement(By.xpath("//ul[@id='menu-main']/li/a")); 
     System.out.println(mainMenu.getText()); 
     WebElement subMenu = driver.findElement(By.xpath("//a[contains(text(),'Impegno Per La Natura')]")); 
     Actions action = new Actions (driver); 
     action.moveToElement(mainMenu).perform(); 
     System.out.println(subMenu.getText()); 
     action.click(subMenu).perform(); 
    } */ 

    @Test 
    public void all_Links(){ 
     try{ 
     List<WebElement> allLinks = driver.findElements(By.tagName("a")); 
     System.out.println("Count of all links: " +allLinks.size()); 

     //Loop 
     for (WebElement link : allLinks) 
      System.out.println(link.getText()); 


    }catch (Exception e){ 
     System.out.println("Element not found by tagName"); 
    } 
    } 

    @AfterTest 
    public void close_Browser(){ 
     driver.quit(); 
    } 
} 

Nach Durchlauf dieses Programm, das Ergebnis als angezeigt 'Graf von allen Links: 0' Bitte geben!

Danke, Sudhir

Antwort

0

Sie werden alle Verbindungen erhalten src Verwendung enthält die Attribute href/wie in den folgenden Code dargestellt:

@Test 
    public void alllinks() 
    { 
     System.setProperty("webdriver.chrome.driver", "D:/Selenium/Drivers/chromedriver.exe"); 
     WebDriver driver = new ChromeDriver(); 
     driver.manage().window().maximize(); 

    driver.get("http://www.google.com"); 

    List<WebElement> list=driver.findElements(By.xpath("//*[@href or @src]")); 

    for(WebElement e : list){ 
     String link = e.getAttribute("href"); 
     if(null==link) 
      link=e.getAttribute("src"); 
     System.out.println(e.getTagName() + "=" + link); 
    } 
    } 

Hoffnung dieser Code wird Ihnen helfen.

Dank

0

Sie den richtigen Code verwenden, aber in falscher Reihenfolge all_Links Ausführung() Methode wird zuerst vor openBrowser Ausführung(). Bitte geben Sie die Priorität in Ihre @ test Annotation ein, da @test Annotation standardmäßig in alphabetischer Reihenfolge ausgeführt wird.

Hoffe, das wird dir hilfreich sein !!!

0

Es wäre besser, wenn Sie driver.get("https://www.google.com/"); von OpenBrowser() zu SetUp() ändern können. OpenBrowser() ist kein Test und kann die Reihenfolge der Ausführung stören.

Verwandte Themen