无法使用selenium单击图像

时间:2013-11-18 12:34:18

标签: java selenium internet-explorer-10

我有以下HTML,请帮我编写一个java代码来点击“患者”按钮。

<span id="addPat">
  <span style="cursor: hand;" onclick="javascript:AddPatient();">   
    <img width="17" height="17" class="btnRowIcon" src="../Images/V10Icons/Add.gif"/>

3 个答案:

答案 0 :(得分:0)

你必须以某种方式识别跨度;看起来像这样:

WebElement patientButton = driver.findElement(By.xpath("//span/span[child::img[@class='btnRowIcon']]"));

根据您网站的结构,这可能有效,也可能无效。获得元素后,您可以使用patientButton.click()点击它。

答案 1 :(得分:0)

更好的替代blalasaadri的答案,就是使用CSS选择器。 They are faster, cleaner,只是......更好。

WebElement image = driver.findElement(By.cssSelector("span#addPat img.btnRowIcon"));
// now you can perform what you want to on the image. image.getAttribute("src")...

答案 2 :(得分:0)

我同意sircapsalot,你也可以使用implicit or explicit waits等待元素的存在 这是示例,使用显式等待:

WebDriverWait image = new WebDriverWait(driver,60); 
image.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("span#id img.btnRowIcon")));
image.click();   

以上代码将等待60秒以使图像可见,

  • 如果在60之前找到图像,则会被点击,否则会抛出异常..