我的问题是xpath没有在Selenium上工作



我正试图使用Selenium的xpath从网站下载特定日期的文件,如下所示。我正在使用它从网站表格中找到我想要的链接。

driver.findElement(By.xpath("//tr[td[contains(.,'10/30/2018')] and @class='Row ']//span")).click();

当我使用xpath在Chrome浏览器中直接搜索HTML时,它会给我想要的结果。然而,如果我在java程序中使用Selenium的xpath(web驱动程序是Chrome的(来定位元素,我会得到"没有这样的元素异常"。我已经尝试使用等待更长时间的网页加载

driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

但这并没有奏效。

有人能告诉我为什么吗?

我看到链接位于"iframe"标签中。这是我应该先处理的事情吗?

web结构基本上与类似

<tr>
<tr class="Row ">
<td>10/30/2018 9:00:00 PM<td>
<td>
<span>
<input type="submit" value="Download"></input>
<input type="hidden"></input>
</span>
</td>
</tr>
<tr class="Row ">
<td>10/27/2018 9:00:00 PM<td>
<td>
<span>
<input type="submit" value="Download"></input>
<input type="hidden"></input>
</span>
</td>
</tr> 
</tr> 

我也尝试过,但没有成功。

driver.findElement(By.xpath("//tr[td[contains(.,'10/30/2018')] and @class='Row ']//input[@type='submit']")).click();

我的问题解决了。我找不到元素的原因是它在iframe标记中。这意味着它是当前网站中的另一个网站。为了处理这个问题,我需要使用switchTo功能先去那个网站,然后我才能处理它

driver.switchTo().frame(driver.findElements(By.tagName("iframe")).get(0)); 

相关内容

  • 没有找到相关文章

最新更新