首页 > 解决方案 > 硒 - 不可点击的链接

问题描述

我正在"https://www.diretta.it"用 Selenium 库解析网站。当我再次单击后尝试单击链接时,没有结果。

这是代码:

public static void main(String[] args)
{
    String url = "https://www.diretta.it/serie-a-2016-2017/";

    // System Property for Chrome Driver   
    System.setProperty("webdriver.chrome.driver","C:\\..\\chromedriver_win32\\chromedriver.exe");  

    // Instantiate a ChromeDriver class.      
    WebDriver driver=new ChromeDriver(); 
    driver.manage().window().maximize();

    driver.get(url);
    driver.findElement(By.xpath("//a[@href='/serie-a-2016-2017/risultati/']")).click();

    try 
    {
        Thread.sleep(3000); //  3 secondi
    } 
    catch (InterruptedException e) 
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

这部分代码好像没有执行

    WebElement element = driver.findElement(By.xpath("//a[@class='event__more event__more--static']"));
    Actions actions = new Actions(driver);
    actions.moveToElement(element).click().build().perform();       
}

这是我要点击的链接:

在此处输入图像描述

标签: javaseleniumhref

解决方案


这是一个动态元素,因此您需要引发 Web 驱动程序等待:

WebDriverWait wait = new WebDriverWait(driver, 30);
String xpath = "//a[@class='event__more event__more--static']";
WebElement link = wait.until(ExpectedConditions.elementToBeClickable(By.xpath(xpath));

link.click();

与进口:

import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

推荐阅读