2017-02-21 96 views
0

我的测试用于在2月20日之前正常运行。从今天早上开始,我在控制台上看到许多错误。他们看起来像:ExpectedConditions类在运行硒测试时会抛出许多错误

лют. 21, 2017 2:38:19 PM org.openqa.selenium.support.ui.ExpectedConditions findElement 
WARNING: WebDriverException thrown by findElement(By.xpath: //a[@href='/#/activities']//span) 
org.openqa.selenium.NoSuchElementException: Cannot locate an element using By.xpath: //a[@href='/#/activities']//span 
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html 
Build info: version: '3.1.0', revision: 'b94c902', time: '2017-02-16 12:21:31 -0800' 
System info: host: 'SALSALABS5', ip: '192.168.15.114', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_111' 
Driver info: driver.version: unknown 
    at org.openqa.selenium.support.ui.ExpectedConditions.lambda$findElement$0(ExpectedConditions.java:896) 
    at java.util.Optional.orElseThrow(Optional.java:290) 
    at org.openqa.selenium.support.ui.ExpectedConditions.findElement(ExpectedConditions.java:895) 
    at org.openqa.selenium.support.ui.ExpectedConditions.access$000(ExpectedConditions.java:41) 
    at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:181) 
    at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:178) 
    at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:234) 
    at com.vitalii.vitaliiFramework2.helpers.Waiters.fluentWaitIgnoringNoSuchElementExceptionAndElementNotVisibleException(Waiters.java:85) 
    at com.vitalii.vitaliiFramework2.pages.DashboardPage.goToActivitiesPage(DashboardPage.java:20) 
    at com.vitalii.vitaliiFramework2.tests.LoginPageTestsWD.doSuccessfulLoginTest(LoginPageTestsWD.java:19) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 

显然这是因为ExpectedConditions类。

项目编译成功,我的IDE在任何类中都不显示任何错误。该问题仅在测试运行时期间被观察到,并且总是会导致测试在某个时候失败。

我没有更新浏览器或我的pom.xml。周末之前没事,现在就失败了。

浏览器 - FF 47.0 硒 - 我的代码3.1.0

示例使用ExpectedConditions类是:

public void fluentWaitIgnoringNoSuchElementExceptionAndElementNotVisibleException(final String locator){ 
     long waitingTime = 30; 
     long pollingInterval = 500; 
     Wait<WebDriver> wait = new FluentWait<WebDriver>(driver) 
       .withTimeout(waitingTime, TimeUnit.SECONDS) 
       .pollingEvery(pollingInterval, TimeUnit.MILLISECONDS) 
       .ignoring(NoSuchElementException.class) 
       .ignoring(ElementNotVisibleException.class) 
       .withMessage("Fluent wait of " + waitingTime + " seconds with " + pollingInterval + " milliseconds polling interval was unable to locate element with locator " + locator); 
     wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(locator))); 
    } 
+0

你能后的'ExpectedConditions'使用在你的代码的例子吗? – Guy

+0

@Guy我在说明中添加了一段代码。感谢 –

回答

0

恭喜!你刚刚发现了一个bug! ;)

我认为ExpectedConditions没有问题,但更可能在页面的html中有一些变化。

我会在FF上手动检查测试用例以查看发生了什么变化。

+0

其100%不关于应用程序。我在我的测试中使用FluentWaits,并且测试一直运行到某个点。在控制台中,前面提到的错误在运行期间不断抛出(每秒)。 –

0

简单解决方法是将硒版本从3.1.0降级到3.0.1。

相关问题