Selenium 简明教程
Selenium - Find All Links
Selenium Webdriver 可用于计算 Web 应用程序上的链接总数。通常,在执行网页抓取时,我们通常需要计算链接。所有链接(称为超链接)都通过名为 * anchor* 的标签名,并且它有一个称为 href 的属性。
Identification of Links in HTML
现在让我们讨论在以下图片中显示的网页上标识链接 Home 。打开 Chrome 浏览器,右键单击网页,然后单击“检查”按钮。然后,该页面的完整 HTML 代码将可用。要检查页面上的主页链接,请单击可见 HTML 代码顶部提供的左向上箭头,如下所示。
点击并指向超链接 Home 后,可以看到其 HTML 代码,既反映锚标签名(称为“a”),也反映包含页面链接的 href 属性。
<a href="https://www.tutorialspoint.com/index.htm" target="_blank">Home</a>
Count Total Links
让我们以以上页面为例,在此页面上,我们将计算链接总数。在此页面上,链接总数应为 42。
Example
package org.example;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EgeDriver;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
public class CountLinks {
public static void main(String[] args) throws InterruptedException {
// Initiate the Webdriver
WebDriver driver = new EdgeDriver() ;
// adding implicit wait of 10 secs
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// Opening the webpage where we will count the links
driver.get( "https://www.tutorialspoint.com/selenium/practice/links.php" ) ;
// Retrieve all links using locator By.tagName a and storing in List
List<WebElement> totalLnks = driver.findElements(By.tagName("a"));
System.out.println( "Total number of links:" + totalLnks.size() ) ;
// Closing browser
driver.quit();
}
}
添加到 pom.xml 中的 Maven 依赖项
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>SeleniumJava</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.11.0</version>
</dependency>
</dependencies>
</project>
Total number of links on a page: 42
Process finished with exit code 0
在以上示例中,我们已经计算了网页上的链接总数,并且在控制台中收到了消息 - Total number of links on a page: 42 。
最后,收到了消息 Process finished with exit code 0 ,表示代码成功执行。
Get All Link Names
现在,让我们来看一个获取上面讨论的网页上所有超链接名称的示例。
Example
package org.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class TotalLinksWithNm {
public static void main(String[] args) throws InterruptedException {
// Initiate the Webdriver
WebDriver driver = new ChromeDriver() ;
// adding implicit wait of 10 secs
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// Opening the webpage where we will count the links
driver.get( "https://www.tutorialspoint.com/selenium/practice/links.php") ;
// Retrieve all links using locator By.tagName and storing in List
List<WebElement> totalLnks = driver.findElements(By.tagName("a"));
System.out.println( "Total number of links: " + totalLnks.size() );
// Running loop through list of web elements
for ( int j = 0; j < totalLnks.size() ; j++) {
// get the all hyperlink texts
System.out.println( "Link text is: " + totalLnks.get(j).getText() ) ;
}
// Closing browser
driver.quit();
}
}
Total number of links: 42
Link text is:
Link text is: Selenium Tutorial
Link text is: Text Box
Link text is: Check Box
Link text is: Radio Button
Link text is: Web Tables
Link text is: Buttons
Link text is: Links
Link text is: Broken Links - Images
Link text is: Upload and Download
Link text is: Dynamic Properties
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is:
Link text is: Home
Link text is: HomewPWPU
Link text is: Created
Link text is: No Content
Link text is: Moved
Link text is: Bad Request
Link text is: Unauthorized
Link text is: Forbidden
Link text is: Not Found
Process finished with exit code 0
在以上示例中,我们已经计算了网页上的链接总数,并且在控制台中收到了消息 - Total number of links: 42 and all the link texts 。
最后,收到了消息 Process finished with exit code 0 ,表示代码成功执行。