打印selenium中的所有链接时出现此错误。如果实际问题在这一行需要帮助(从在线教程中学习),有哪些替代选项:
List<WebElement> alltags = (List<WebElement>) driver.findElement(By.tagName("a"));
代码块:
package ui;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
public class PrintAllLinks {
public static String browser = "chrome"; //Which Browser you want to Test?
public static WebDriver driver;
public static void main(String[] args) {
if(browser.equals("Firefox"))
{
WebDriverManager.firefoxdriver().setup();
driver = new FirefoxDriver();
} else if(browser.equals("chrome"))
{
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
} else if(browser.equals("edge"))
{
WebDriverManager.edgedriver().setup();
driver = new EdgeDriver();
}
driver.get("https://www.sugarcrm.com/request-demo/");
driver.manage().window().maximize();
List<WebElement> alltags = (List<WebElement>) driver.findElement(By.tagName("a"));
System.out.println("Total tags are" + alltags.size());
for(int i=0; i<alltags.size(); i++)
{
System.out.println("Links on page are" +alltags.get(i).getAttribute("href"));
System.out.println("Links on page are" +alltags.get(i).getText());
}
driver.close();
}
}
1条答案
按热度按时间bksxznpy1#
findelements()
findElements()
返回所有匹配WebElement的列表,如果没有匹配项,则返回空列表。因此,您需要做以下两个更改:
而不是
findElement()
使用findElements()
删除显式转换以List<WebElement>
.实际上,您的代码行将是: