getText上的RemoteWebElement异常和long String

时间:2017-11-11 21:18:53

标签: javascript selenium selenium-webdriver remotewebdriver

由于Selenium RemoteWebDriver抛出异常,我在自动化测试中间歇性地看到错误。在文本字段(通过RemoteWebElement.getText())输入文本字段后调用sendKeys()时会发生这种情况。

我已经为下面的一个场景粘贴了堆栈跟踪:

org.openqa.selenium.WebDriverException: [JavaScript Error: "e is null" {file: "file:///tmp/anonymous4777337731209209225webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js" line: 7143}]'[JavaScript Error: "e is null" {file: "file:///tmp/anonymous4777337731209209225webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js" line: 7143}]' when calling method: [nsICommandProcessor::execute]
Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:17:32'
System info: host: 'N/A', ip: 'N/A', os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-696.1.1.el6.x86_64', java.version: '1.7.0_51'
Driver info: driver.version: unknown
Command duration or timeout: 1.32 seconds
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'ip-172-75-113-44', ip: '172.75.113.44', os.name: 'Linux', os.arch: 'amd64', os.version: '2.6.32-573.18.1.el6.x86_64', java.version: '1.7.0_25'
Session ID: a1e31479-683d-4e74-a8b9-c205644353e5
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities [{platform=LINUX, acceptSslCerts=true, javascriptEnabled=true, browserName=firefox, rotatable=false, locationContextEnabled=true, webdriver.remote.sessionid=a1e31479-683d-4e74-a8b9-c205644353e5, version=31.1.0, cssSelectorsEnabled=true, databaseEnabled=true, handlesAlerts=true, webStorageEnabled=true, nativeEvents=false, applicationCacheEnabled=true, takesScreenshot=true}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_25]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_25]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_25]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[na:1.7.0_25]
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) ~[selenium-remote-driver-2.53.1.jar:na]
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) ~[selenium-remote-driver-2.53.1.jar:na]
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) ~[selenium-remote-driver-2.53.1.jar:na]
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327) ~[selenium-remote-driver-2.53.1.jar:na]
at org.openqa.selenium.remote.RemoteWebElement.getText(RemoteWebElement.java:179) ~[selenium-remote-driver-2.53.1.jar:na]
at uk.nhs.ers.automation.framework.core.page.element.general.GeneralWebElement.assertText(GeneralWebElement.java:87) ~[ers-automation-framework-7.0.0-SNAPSHOT.jar:na]

触发此错误的代码执行以下操作:

private void assertCommentMaxLength()
{
    // An accessor to a text field which containts a selenium.remote.RemoteWebElement.
    final TextareaWebElement comment = this.page.get(Popup.COMMENTS_FIELD);

    comment.clear();

    final String commentString = LONG_STRING_2000_CHARACTERS;

    comment.typeText(commentString);

    assertThat(comment.webElement.getText(), AutoMatchers.length(EXPECTED_LENGTH));
}

为什么偶尔会抛出上述错误?我只是设置文本然后检索它。我需要某种等待语句,因为它是一个长字符串吗?我也看到过这种情况发生在另一个调用RemoteWebElement.getAttribute()的地方,字符串类似。

0 个答案:

没有答案