【发布时间】:2016-12-11 21:09:37
【问题描述】:
我正在使用 Selenium WebDriver 使用 java 在 2 textboxe 中输入文本。我可以在第一个文本框中输入文本,但对于第二个 textbox,我不断收到 ElementNotVisibleException
HTML 代码..
<form name="form">
<div class="form-group">
<input name="name" type="text" class="form-control" ng-model="name" placeholder="Name*" required>
</div>
<div class="form-group">
<input name="email" id="email" type="email" class="form-control" ng-model="email" ng-change="(form.email.$dirty && form.email.$valid) ? error='' : error='Please enter a valid email'" placeholder="Email*" required autofocus/>
</div>
</form>
Java 代码..
WebElement name = driver.findElement(By.name("name"));
name.sendKeys("Sample Name");
WebElement signup_email = driver.findElement(By.name("email"));
signup_email.sendKeys("abc@xyz.com");
错误:
org.openqa.selenium.ElementNotVisibleException: 元素不是 当前可见,因此可能无法与 Command 交互 持续时间或超时:19 毫秒构建信息:版本:'2.53.1', 修订:'a36b8b1',时间:'2016-06-30 17:32:46' 系统信息:主机: 'Hp-PC', ip: '172.16.255.131', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_79' 会话 ID: 2e7ab2fd-cd6b-428e-86e7-a4f7d8d737fa 驱动程序信息: org.openqa.selenium.firefox.FirefoxDriver 功能 [{平台=WINDOWS,acceptSslCerts=true,javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handleAlerts=true, nativeEvents=false, webStorageEnabled=true, 可旋转=假,locationContextEnabled=真, applicationCacheEnabled=true,takeScreenshot=true,版本=47.0.1}] 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 方法)在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) 在 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) 在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) 在 org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327) 在 org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:122) 在 src.tests.EmailSignUp.test(EmailSignUp.java:107) 在 src.tests.EmailSignUp.main(EmailSignUp.java:27)
编辑 1:
在浏览器控制台中,以下类将自动由 angular Js 填充
如果是第二个textbox,我不明白我哪里出错了。角码会引起问题吗?请帮忙..
【问题讨论】:
-
据我所知,您的代码没有任何问题。我猜它的问题与页面本身有关。作为一种解决方法,您可以尝试使用预期的可见性条件进行显式等待。
-
试过了..我得到一个 TimedOutException... :(
-
您可以手动输入值吗?也许你可以尝试增加时间跨度
-
暂停执行直到输入第一个文本框值,然后在尝试查找之前查看 element2 的状态。也许它可以给你一些信息
-
您是否检查过不可见元素的选择器是否匹配页面中的多个元素?您可以使用类似的 CSS:[name=email]
标签: java html angularjs selenium selenium-webdriver