我试图在加载 pdf 后找到此标题元素。我正在使用
contains()
,因为 .pdf 名称永远不会改变,但根据用于打开 pdf 的应用程序,它的开头可能会改变,所以我需要捕获一个子字符串。
...
</meta>
<title>
Notes - Learning.pdf
</title>
<!--This snippet is used in the Firefox extension (included from viewer.html)-->
...
这是我用 Java 编写的代码:
String xpaths = "//*[contains(text(), 'Learning.pdf')]"
WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpaths)));
我确信我的 xpaths 字符串没有问题,因为我尝试了不同的字符串,例如将
text()
替换为 .
,甚至尝试对其进行分区并将 *
替换为 title
。它们都是有效的,因为当我将 xpath 粘贴到检查元素中时,它们会返回正确的元素。我注意到,当我将 xpaths 字符串留空时,它能够处理该字符串并且不会失败。但是一旦我尝试任何单词或字母,它就找不到它。
我还注意到,当我这样做时,它会起作用并找到它。所以这不是驱动程序的问题,而是 xpath 的问题,也许它是 pdf 的问题,这可能会让事情变得更加棘手。我也试过把等待时间延长到600秒,还是找不到。
By.name("Notes - Learning.pdf")
)。
使用这个:]
或
"//*[contains(text(), 'Learning.pdf')]"