如何使用selenium webdriver单击图像图标

时间:2013-09-12 00:50:21

标签: selenium selenium-webdriver selenium-ide

我试图通过xPath点击图像图标但是当我运行代码时,图像图标上的链接没有打开。你能帮我解决一下这个问题。

我用来点击邮件图标的代码: To Click the Mail Ico

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

Html of the page Html of page-part2

3 个答案:

答案 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)

Tada

德勤。这是框架。 <frame><iframe>都需要特别小心,请参阅the documentation on the topic

您需要做什么:

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

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

完成框架后,您需要切换回页面的默认上下文,执行:

driver.switchTo().defaultContent();