一尘不染

Chromedriver 78可能存在问题,Selenium找不到在Chrome中打开的PDF的Web元素

selenium

在我的Google
Chrome浏览器未更新到版本78之前,我的代码无法正常工作。我还将chromedriver更新为版本78.0.3904.70。因此,我无法再使用Selenium
WebDriver和Java查找id =’plugin’的WebElement:

<html>
<div id="content">
<embed id="plugin" type="application/x-google-chrome-pdf" src="http://??????????/offer_printed.php?printable=yes&amp;reanudar=&amp;>
</div>
</html>

除此之外,我的测试工作正常。我以前从未遇到过类似的问题。我也试图找到WebElement id =’content’,但是我收到了同样的错误。

WebDriverWait wait = new WebDriverWait (driver, 90);
WebElement scrollvalid = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("plugin")));

scrollvalid.sendKeys(Keys.PAGE_DOWN);                       scrollvalid.sendKeys(Keys.PAGE_DOWN);

我的自动化脚本应找到PDF元素并向下滚动页面。相反,我收到此错误:org.openqa.selenium.TimeoutException:等待90秒后超时,等待By.id定位的元素可见:插件

有人面临类似的问题吗?提前致谢。


阅读 316

收藏
2020-06-26

共1个答案

一尘不染

我遇到了同样的问题。

Chrome显然会自动更新。昨天(19年10月29日),我的ChromeDriver开始抱怨它与Chrome
78不兼容。我将驱动程序更新为78版本。当尝试查找我确认存在的元素时,我开始随机获得org.openqa.selenium.NoSuchElementException异常。当我使用断点时,findElement
[s]也可以工作。我还尝试了隐式等待,但效果有限。

我尝试了zsbappa的ChromeOption解决方案,但没有任何乐趣。

Google很难获取旧版本的Chrome,但我在https://www.neowin.net/news/google-chrome-76-offline-
installer/上找到了76版。当心,在线安装程序将安装最新版本。我花了76岁重新找司机,一切都很好。我所有的Selenium测试都可以再次使用。

我的结论是,Chrome 78及其关联的驱动程序处于竞争状态,Selenium尝试在完成之前查询该网页。

2020-06-26