我正在尝试通过 xPath 单击图像图标,但是当我运行代码时,图像图标上的链接未打开。你能帮我解决这个问题吗?
我用来点击邮件图标的代码:
driver.findElement(By.xpath("//*[@id='e-switcher-mail-icon']")).click();
我正在尝试通过 xPath 单击图像图标,但是当我运行代码时,图像图标上的链接未打开。你能帮我解决这个问题吗?
我用来点击邮件图标的代码:
driver.findElement(By.xpath("//*[@id='e-switcher-mail-icon']")).click();
正如 slanec 所说,需要更多信息,或者可能是元素未加载。如果您觉得元素已加载但仍未发生,则使用 java 脚本是单击图像元素的一种方法。
像这样的东西
WebElement element = driver.findElement (By.xpath ("//*[@id='e-switcher-mail-icon']"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript ("arguments[0].click();" , element);
可能是该元素尚未加载到 DOM 中。尝试等待预期的条件:
Wait<WebDriver> wait= new FluentWait<WebDriver>(driver).withTimeout(15L, TimeUnit.SECONDS).pollingEvery(1, TimeUnit.SECONDS);
WebElement icon = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='e-switcher-mail-icon']")));
icon.click();
触摸。是相框。要么 要么<frame>
,<iframe>
两者都需要特别注意,请参阅有关该主题的文档。
你需要做什么:
driver.switchTo().frame("s_MainFrame");
在此之后,驱动程序的上下文将切换到框架,所有搜索都将在其中完成,因此您应该能够找到该元素而不会出现任何问题。
在框架中完成后,您需要切换回页面的默认上下文,请执行以下操作:
driver.switchTo().defaultContent();