java - 硒 - 不可点击的链接
问题描述
我正在"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();
}
这是我要点击的链接:
解决方案
这是一个动态元素,因此您需要引发 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;
推荐阅读
- bash - 识别 bash 数组的元素 - 确定 aws 键是否存在 90 天
- php - 在 PHP 变量中存储多个 JSON 对象值
- java - 意图在我的应用程序中不起作用
- excel - 使用 .formula 添加到单元格时,字符串中的路径会发生变化
- python - 根据索引值查找矩阵数据
- bash - 如何保留与终端屏幕上打印的完全相同的标准输出?
- angular - Angular 4 Mapbox 通过 ngFor 创建多个地图
- c# - 本地 dll 和 nuget lib 之间奇怪的 C#.Net 依赖关系
- maven - Liquibase:如何根据配置动态包含来自 github 的文件
- entity-framework - 返回实体框架上的临时表