5

我正在尝试通过 xPath 单击图像图标,但是当我运行代码时,图像图标上的链接未打开。你能帮我解决这个问题吗?

我用来点击邮件图标的代码: 单击邮件图标

   driver.findElement(By.xpath("//*[@id='e-switcher-mail-icon']")).click();

页面的html page-part2的html

4

3 回答 3

3

正如 slanec 所说,需要更多信息,或者可能是元素未加载。如果您觉得元素已加载但仍未发生,则使用 java 脚本是单击图像元素的一种方法。

像这样的东西

WebElement element = driver.findElement (By.xpath ("//*[@id='e-switcher-mail-icon']"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript ("arguments[0].click();" , element);
于 2013-09-12T06:11:40.687 回答
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();
于 2013-09-12T04:34:00.810 回答
0

多田

触摸。是相框。要么 要么<frame><iframe>两者都需要特别注意,请参阅有关该主题的文档

你需要做什么:

driver.switchTo().frame("s_MainFrame");

在此之后,驱动程序的上下文将切换到框架,所有搜索都将在其中完成,因此您应该能够找到该元素而不会出现任何问题。

在框架中完成后,您需要切换回页面的默认上下文,请执行以下操作:

driver.switchTo().defaultContent();
于 2013-09-12T20:09:19.947 回答