2

我有以下html页面源,我尝试通过xpath/cssselector单击图像。没有一个可以工作,你能帮我找到我的代码的问题吗?我用的是IE9。

<pretable border="0" cellpadding="0" cellspacing="0" width="700">
      <tr>
         <td rowspan="2" width="120">
          <a href="#" onclick="oCMenu.m['top1'].b.moveIt(8,60); oCMenu.showsub('top1'); " 
            onclick="return false" class="FontNormal">
           <img border="0" src="images/shim.gif" width="112" height="73"></a></td>  
       </tr>
  </pretable>

我的代码是:

    ieDriver.findElement(By.xpath("//html/table/tr[1]/td/a[@class='FontNormal']/img[@src='images
     /shim.gif']")).click();

    ieDriver.findElement(By.cssselector("class='FontNormal'")).click();
4

6 回答 6

3

有了可用的 DOM 结构,我们总是可以使用 CSS 选择器。

CSS 选择器

css=a[href='images/shim.gif']
css=a[href*='shim.gif']

然后执行

driver.findElement(By.cssSelector("a[href='images/shim.gif']")).click(); 

或者

driver.findElement(By.cssSelector("a[href*='shim.gif']")).click();
于 2014-04-02T05:52:34.730 回答
2

您正在尝试提供完整的 xpath,但它与您提供的 html 不匹配。

'table' 与 'pretable' 不同,无论如何您都不需要提供完整路径。相反,只需为您的 xpath 试试这个:

XPath("//a[@class='FontNormal']")

在这里,xpath 将搜索任何附加了“FontNormal”类的链接。如果只有一个,这将选择您的元素。如果还有更多,您可能需要更具体。

于 2013-02-12T03:33:09.077 回答
2

首先编写正确的 xpath 以识别您要执行点击操作的 web 元素

  driver.findElement(By.Xpath("//img[@ src='images/shim.gif']")).click();
于 2014-02-02T18:16:10.690 回答
1
element(By.xpath('//html/table/tr[1]/td/a[@class='FontNormal']/img[@src='images
     /shim.gif']')).click();
于 2016-01-11T15:22:29.863 回答
0

FirebugFirepath 一起用于 Mozilla Firefox。这将自动为您生成 xpath。

Webelement element = driver.findElement(By.xpath("*xpath here*");
element.click();
于 2013-07-26T02:02:23.163 回答
0

使用 xpath 点击图片链接。

driver.findElement(By.xpath("//img[contains(@src,'/static/images/image_name.png')]")).click();

您可以根据图像源更改图像路径。

于 2019-04-23T06:01:41.257 回答