by.xpath 不起作用,尽管 xpath 是正确的

问题描述 投票:0回答:1

我试图在加载 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秒,还是找不到。

    

java selenium-webdriver pdf xpath webdriver
1个回答
0
投票
By.name("Notes - Learning.pdf")

)。

使用这个:

]

"//*[contains(text(), 'Learning.pdf')]"

    

© www.soinside.com 2019 - 2024. All rights reserved.