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