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

在我的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:WAITING90秒后等待By.id定位的元素可见:插件超时

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

参考方案

我遇到了同样的问题。

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位司机,一切都很好。我所有的硒测试都重新开始了。

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

Selenium Webdriver(Java)-查找禁用了属性=“”的元素 - java

我有<input id="test" disabled="">。如何找到具有属性disable =“”的元素。附言:在这种情况下,我不需要使用ID。我想找到一个具有禁用属性的元素。我尝试使用String enbl = Login.driver.findElement(By.cssSelector("…

将ExtentTest的默认设置为FAILED - java

我正在使用extentreports为使用Java和Selenium编写的测试添加报告。我注意到,如果ExtentTest有两个日志“ INFO”和“ PASSED”,则如果未捕获通过日志,则将其视为“通过”。我如何以某种方式更改它,如果未通过测试,它将被自动标记为“失败”? 参考方案 默认情况下,无法更改行为以使测试用例失败。它是一个设计决策,每个测试框架…

如何等待警报框在Selenium中执行操作? - java

我按一个取消按钮,而不是根据我的代码正在检查一些文本。在Chrome和Firefox中,它工作正常,但在IE中,要花一些时间在警报框中执行操作,但代码会移至下一行。因此,我希望一些代码停止运行,直到在警报框上执行该操作,然后再执行下一步。我正在使用硒进行自动化测试。请找到一段代码:Alert al = driver.switchTo().alert(); a…

Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …

JAVA:字节码和二进制有什么区别? - java

java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…