解决方法
捕获并导航网页上的所有链接
迭代器和高级for循环可以做类似的工作;但是,循环内页面导航的不一致性可以使用数组概念来解决.
private static String[] links = null; private static int linksCount = 0; driver.get("www.xyz.com"); List<WebElement> linksize = driver.findElements(By.tagName("a")); linksCount = linksize.size(); System.out.println("Total no of links Available: "+linksCount); links= new String[linksCount]; System.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(all_links_webpage.get(i).getAttribute("href")); } // navigate to each Link on the webpage for(int i=0;i<linksCount;i++) { driver.navigate().to(links[i]); Thread.sleep(3000); }
1 |捕获特定帧| class | id下的所有链接并逐个导航
driver.get("www.xyz.com"); WebElement element = driver.findElement(By.id(Value)); List<WebElement> elements = element.findElements(By.tagName("a")); int sizeOfAllLinks = elements.size(); System.out.println(sizeOfAllLinks); for(int i=0; i<sizeOfAllLinks ;i++) { System.out.println(elements.get(i).getAttribute("href")); } for (int index=0; index<sizeOfAllLinks; index++ ) { getElementWithIndex(By.tagName("a"),index).click(); driver.navigate().back(); } public WebElement getElementWithIndex(By by,int index) { WebElement element = driver.findElement(By.id(Value)); List<WebElement> elements = element.findElements(By.tagName("a")); return elements.get(index); }
Java的
driver.get(baseUrl + "https://www.google.co.in"); List<WebElement> all_links_webpage = driver.findElements(By.tagName("a")); System.out.println("Total no of links Available: " + all_links_webpage.size()); int k = all_links_webpage.size(); System.out.println("List of links Available: "); for(int i=0;i<k;i++) { if(all_links_webpage.get(i).getAttribute("href").contains("google")) { String link = all_links_webpage.get(i).getAttribute("href"); System.out.println(link); } }
蟒蛇
from selenium import webdriver driver = webdriver.Firefox() driver.get("https://www.google.co.in/") list_links = driver.find_elements_by_tag_name('a') for i in list_links: print i.get_attribute('href') driver.quit()