selenium-webdriver – 如何在Selenium WebDriver中单击网页中的所有链接

selenium-webdriver – 如何在Selenium WebDriver中单击网页中的所有链接,第1张

概述我有10个不同的页面包含不同的链接.如何点击所有链接? 条件是: i)我不知道有多少链接 ii)我想计算并点击每个链接 请建议我使用Selenium WebDriver脚本. 捕获并导航网页上的所有链接 迭代器和高级for循环可以做类似的工作;但是,循环内页面导航的不一致性可以使用数组概念来解决. private static String[] links = null;private stat 我有10个不同的页面包含不同的链接.如何点击所有链接?

条件是:
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中单击网页中的所有链接所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1046909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存