如何在特定图像与之关联时单击按钮

时间:2009-12-19 18:55:41

标签: selenium

我正在使用selenium来测试我的应用程序。 在我的应用程序中有5个按钮,每个按钮都有一个与之关联的不同图像。 我想点击具有特定图像的按钮。

目前我正在使用while循环获取图像节点,然后将此节点替换为按钮的xpath以选择它。

有没有办法使用xpath或css直接执行此操作。 提供更多信息 - 这就像提交按钮在那里然后在这个图像下面。提交按钮和图像是兄弟元素,当下一个元素是特定图像时需要单击提交按钮

<div class="select">
     <span class="sysTxtBtn submit xxs">
           <span class="btnTagDummy">
     </span>
     <div class="specialRateMarking">
          <img width="79" height="11" alt="Marking2" src="someimages"/>
</div>
<div class="select">
     <span class="sysTxtBtn submit xxs">
           <span class="btnTagDummy">
     </span>
     <div class="specialRateMarking">
          <img width="79" height="11" alt="Marking1" src="someimages"/>
</div>

1 个答案:

答案 0 :(得分:2)

您是否可以添加HTML代码段?下面是一个表单中的图像示例以及使用Selenium定位它的几种方法,但根据您的实现,这些可能不相关:

<input id="submitForm" name="imgbtn" type="image" src="images/submit.png" />
  • ID = submitForm
  • 名= imgbtn
  • //输入[@ SRC = '图像/ submit.png']
  • //输入[contains(@src,'submit.png')]
  • CSS =输入[SRC = '图像/ submit.png']

<强>更新

鉴于HTML:

<div class="select">
  <span class="submit">
    <div class="marking1"></div>
    <div class="select">
      <span class="submit">
        <div class="marking2"></div>

您可以使用以下XPath找到'marking2'span的'submit'div父级:

  • // DIV [@类= 'marking2'] / ..
  • // DIV [@类= 'marking2'] /父:: *
  • // DIV [@类= 'marking2'] /父::跨度

更新2:

根据问题中现在包含的HTML,您可以通过多种方式找到与图像相关的submit类的范围,下面是几个示例:

  • // div [// img [@ alt ='Marking2'] / span [contains(@class,'select')]
  • // IMG [@ ALT = 'Marking2'] /../../跨度
  • // DIV [IMG [@ ALT = 'Marking2']] /前同辈::跨度

我希望这会给你一些想法。我当然建议使用XPath而不是CSS来定位这些元素,因为它在这些关系中要好得多。