条件是:
i)我不知道有多少链接
ii)我想计算并点击每个链接
请建议我使用Selenium WebDriver脚本.
解决方法 捕获并导航网页上的所有链接迭代器和高级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 webpagefor(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);}
2 |捕获所有链接[替代方法]
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);} }
Python
from selenium import webdriverdriver = 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()总结
以上是内存溢出为你收集整理的selenium-webdriver – 如何在Selenium WebDriver中单击网页中的所有链接全部内容,希望文章能够帮你解决selenium-webdriver – 如何在Selenium WebDriver中单击网页中的所有链接所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)