我正尝试使用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”标签中。是我应该首先处理的事情吗?
网络结构基本上是这样
<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();
答案 0 :(得分:0)
我的问题解决了。我找不到该元素的原因是它在iframe代码中。这意味着它是当前网站内的另一个网站。为了解决这个问题,我需要先使用switchTo功能访问该网站,然后我才能对其进行处理。
driver.switchTo().frame(driver.findElements(By.tagName("iframe")).get(0));