我试图通过xPath点击图像图标但是当我运行代码时,图像图标上的链接没有打开。你能帮我解决一下这个问题。
我用来点击邮件图标的代码:
driver.findElement(By.xpath("//*[@id='e-switcher-mail-icon']")).click();
答案 0 :(得分:3)
由于slanec表示需要更多信息,或者可能未加载元素。如果您认为该元素已加载且仍未发生,则使用java脚本是单击图像元素的一种方法。
像这样的东西
WebElement element = driver.findElement (By.xpath ("//*[@id='e-switcher-mail-icon']"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript ("arguments[0].click();" , element);
答案 1 :(得分:2)
可能是元素尚未加载到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();
答案 2 :(得分:0)
德勤。这是框架。 <frame>
或<iframe>
都需要特别小心,请参阅the documentation on the topic。
您需要做什么:
driver.switchTo().frame("s_MainFrame");
在此之后,驱动程序的上下文将切换到框架,所有搜索都将在其中完成,因此您应该能够找到该元素而不会出现任何其他问题。
完成框架后,您需要切换回页面的默认上下文,执行:
driver.switchTo().defaultContent();