【问题标题】:How to click the image link by selenium webdriver?如何通过 selenium webdriver 单击图像链接?
【发布时间】:2013-02-12 02:45:50
【问题描述】:

我有以下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();

【问题讨论】:

    标签: selenium


    【解决方案1】:

    有了可用的 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();
    

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        【解决方案3】:

        首先编写适当的 xpath 来标识要执行点击操作的 web 元素

          driver.findElement(By.Xpath("//img[@ src='images/shim.gif']")).click();
        

        【讨论】:

          【解决方案4】:
          element(By.xpath('//html/table/tr[1]/td/a[@class='FontNormal']/img[@src='images
               /shim.gif']')).click();
          

          【讨论】:

          • 单独的代码块并不能提供好的答案。请添加解释(为什么它解决了问题,错误在哪里等等......)
          【解决方案5】:

          在 Mozilla Firefox 中使用 FirebugFirepath。这将自动为您生成 xpath。

          Webelement element = driver.findElement(By.xpath("*xpath here*");
          element.click();
          

          【讨论】:

            【解决方案6】:

            使用 xpath 点击图片链接。

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

            您可以根据您的图片来源更改图片路径。

            【讨论】:

              猜你喜欢
              • 2017-12-26
              • 2016-12-28
              • 2013-04-27
              • 2017-02-02
              • 2016-08-07
              • 1970-01-01
              • 2021-08-07
              • 2013-10-04
              • 1970-01-01
              相关资源
              最近更新 更多