在下面提到的代码中,图像的xpath是什么

时间:2016-03-09 10:06:17

标签: selenium

我正在尝试为image.below找到xpath。我的代码。我收到错误无法找到该元素。

driver.findElement(By.xpath("//img[@src='./pics/logo  /home.jpg']")).click();

下面提到的是我的表格代码。从哪里我想找到图像的xpath。

<table cellspacing="0" cellpadding="0" width="600" border="0">
  <tbody>
    <tr>
      <tr>
        <td style="vertical-align: top;padding-top:10px;padding-right: 3px;">
          <td width="30%" style="vertical-align: top;padding-top:10px;">
            <a title="Access to Data (S,g,...)" target="_top" href="./action/updateTabs?tabSet=requestId=1457516682135">
              <img border="0" src="./pics/logo/home/EMLogoMini.jpg">
            </a>
          </td>

2 个答案:

答案 0 :(得分:1)

我观察到你的xpath中有一个空格,而且URL也不同......

使用以下代码: -

driver.findElement(By.xpath("//img[@src='./pics/logo/home/EMLogoMini.jpg']")).click();

或者使用cssSelector如下: -

driver.findElement(By.cssSelector("img[src='./pics/logo/home/EMLogoMini.jpg']")).click();
    List<WebElement> list=driver.findElements(By.xpath("//img[@src='./pics/logo/home/EMLogoMini.jpg']"));

    for(WebElement e : list){
            e.click();
       }

如何以不同方式点击: -

如果您的问题是元素从屏幕滚动(并且因此在标题栏之类的内容下滚动),您可以尝试将其滚动到视图中,如下所示:

private void scrollToElementAndClick(WebElement element) {
    int yScrollPosition = element.getLocation().getY();
    js.executeScript("window.scroll(0, " + yScrollPosition + ");");
    element.click();
}

如果需要,还可以添加静态偏移量(例如,如果页面标题高200像素且始终显示):

    public static final int HEADER_OFFSET = 200;

    private void scrollToElementAndClick(WebElement element) {
    int yScrollPosition = element.getLocation().getY() - HEADER-OFFSET;
    js.executeScript("window.scroll(0, " + yScrollPosition + ");");
    element.click();
}

如果仍然无效,请使用JavascriptExecutor

WebElement element= driver.findElement(By."Your Locator"));

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);

希望它会对你有所帮助:)。

答案 1 :(得分:1)

尝试删除空格并确保网址相同......