这是我正在执行的下面代码
driver.findElement(By.xpath("//label[starts-with(text(),'Create Part...')]")).click();
driver.manage().timeouts().implicitlyWait(70, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(70, TimeUnit.SECONDS);
String parentWindowHandler = driver.getWindowHandle(); // Store your parent window
String subWindowHandler = null;
Set<String> handles = driver.getWindowHandles(); // get all window handles
Iterator<String> iterator = handles.iterator();
while (iterator.hasNext()){
subWindowHandler = iterator.next();
}
driver.switchTo().window(subWindowHandler); // switch to popup window
WebElement element = driver.findElement(By.xpath("//select[@id='Type-Field']//following-sibling::div//div[@class='selectize-input items full has-options has-items']"));
element.clear();
element.sendKeys("Suba");
我正在尝试清除字段中的默认值并通过sendkeys提供一些值。字段提供有关输入值的下拉建议。
在element.clear()行抛出错误。
堆栈追踪:
Exception in thread "main" org.openqa.selenium.InvalidElementStateException:
invalid element state: Element must be user-editable in order to clear it.
(Session info: chrome=66.0.3359.181)
(Driver info: chromedriver=2.38.552522
(437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Windows NT 6.1.7601 SP1
x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 34 milliseconds
Build info: version: 'unknown', revision: '5234b32', time: '2017-03-10
09:00:17 -0800'
System info: host: 'TMIC-PCS2200', ip: '3.235.34.200', os.name: 'Windows 7',
os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_144'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false,
mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome=
{chromedriverVersion=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),
userDataDir=C:\Users\KT0047~1\AppData\Local\Temp\scoped_dir11272_22577},
takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false,
handlesAlerts=true, hasTouchScreen=false, version=66.0.3359.181,
platform=XP, browserConnectionEnabled=false, nativeEvents=true,
acceptSslCerts=false, acceptInsecureCerts=false,
locationContextEnabled=true, webStorageEnabled=true, browserName=chrome,
takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true,
setWindowRect=true, unexpectedAlertBehaviour=}]
Session ID: 742100fb9b41517012003fc5abe12b71
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
请帮我解决我的问题。 我正在使用Selenium 3.3.1版本。
HTML代码
<div class="selectize-input items full has-options has-items" data-dropdown-direction="down">
<div data-value="Part" class="item">Part</div>
<input type="text" autocomplete="off" tabindex="1" style="width: 4px; position: relative; left: 0px; opacity: 0; z-index: -10000;">
::after
</div>
这里Part是默认值。