Selenium SendKeys只将文本注入输入字段几秒钟,然后文本立即从输入字段消失
我试图使用以下命令将文本结尾到名为City的输入字段(下面提到了HTML代码) 脚本运行并将城市作为布鲁塞尔插入几秒钟,然后值“布鲁塞尔”立即消失。然后,脚本将与消息一起出错 异常 线程“main”org.openqa.selenium.elementNotInteractivatableException中的异常:元素不可交互Selenium SendKeys只将文本注入输入字段几秒钟,然后文本立即从输入字段消失,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我试图使用以下命令将文本结尾到名为City的输入字段(下面提到了HTML代码) 脚本运行并将城市作为布鲁塞尔插入几秒钟,然后值“布鲁塞尔”立即消失。然后,脚本将与消息一起出错 异常 线程“main”org.openqa.selenium.elementNotInteractivatableException中的异常:元素不可交互 HTML代码*基本上根据Ryan所说,您可以根据问题所在使用以下两种解决方案之一。由于您的元素不可交互 Webdriver wait = new WebDriverWa
HTML代码*
基本上根据Ryan所说,您可以根据问题所在使用以下两种解决方案之一。由于您的元素不可交互
Webdriver wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(By.id("City"))).sendKeys("Brussels");
或者使用Javascript执行器
String inputText = "Brussels";
WebElement element = driver.findElement(By.id("City"));
String js = "arguments[0].setAttribute('value','"+inputText+"')"
((JavascriptExecutor) driver).executeScript(js, myElement);
等待页面完全加载。元素正确加载后,可能会尝试在文本页面中输入文本。我会阅读此相关帖子上的公认答案,它详细说明了此异常可以由什么产生,以及使用
webdriver
-()绕过异常的其他解决方案,我个人发现,使用JavascriptExecutor
是我最喜欢的绕过selenium
异常并为隐藏元素或看不见的元素设置值的方法。
String inputText = "Brussels";
WebElement element = driver.findElement(By.id("City"));
String js = "arguments[0].setAttribute('value','"+inputText+"')"
((JavascriptExecutor) driver).executeScript(js, myElement);