如何编写使用Selenium Webdriver和Java单击img的定位器?

时间:2019-03-08 15:46:12

标签: java selenium xpath css-selectors webdriverwait

我需要使用Selenium Webdriver Java单击带有锚标记的图像。

<a title="Complete Step" class="tableIcon"           href="javascript:__doPostBack('__Page','COMPLETEJS_2309234_2_2_0')">
	<img title="Complete Step" style="BORDER-LEFT-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-TOP-WIDTH: 0px" src="/BTC/images/complete-job-step.png">
</a>

3 个答案:

答案 0 :(得分:0)

简单的xpath:

a.tableIcon img

如果您有多个链接,并且“ 2309234_2_2_0”是唯一标识符,请使用以下内容。

a[href$="COMPLETEJS_2309234_2_2_0')"] img

答案 1 :(得分:0)

尝试下面的Xpath,它应该可以工作。

"//a[@class='tableIcon']/img"

答案 2 :(得分:0)

由于元素是动态元素,因此您必须为 elementToBeClickable 引入 WebDriverWait ,并且您可以使用以下{{3 }}:

  • Java 解决方案:

    • cssSelector

      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("a.tableIcon[title='Complete Step']>img[title='Complete Step'][src*='complete-job-step']"))).click();
      
    • xpath

      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='tableIcon' and @title='Complete Step']/img[@title='Complete Step' and contains(@src, 'complete-job-step')]"))).click();