Can anybody explain why it is works in this way? I have a simple test and it works with Chrome and Firefox perfect on Windows 10.
public class MyFirstTest {
private WebDriver driver;
private WebDriverWait wait;
@Before
public void start() {
//driver = new InternetExplorerDriver();
driver = new ChromeDriver();
//driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wait = new WebDriverWait(driver, 40);
}
@Test
public void myFirstTest() {
driver.get("http://www.google.com/");
driver.findElement(By.name("q")).sendKeys("web");
driver.findElement(By.name("q")).sendKeys(Keys.ESCAPE);
driver.findElement(By.name("btnK")).click();
//WebElement el = driver.findElement(By.name("btnK"));
//JavascriptExecutor executor = (JavascriptExecutor)driver;
//executor.executeScript("arguments[0].click();", el);
wait.until(titleIs("web - Поиск в Google"));
}
@After
public void stop() {
driver.quit();
driver = null;
}
}
And only with Internet Explorer 11 it can interact with button and click it only using JavascriptExecutor (the piece of code commented). In other way there is "org.openqa.selenium.ElementNotInteractableException: Element is not displayed" is thrown and test failed.